Windows 8 开发之摄像头的使用方法 |
本文标签:windows8,摄像头 1.更新项目中package.appmanifest 文件,本文让webcam和microphone可用 。只需要在功能选项卡中勾选对应的框即可 。如下图所示: 如果不按照上面的设置,那么这些功能是不可以使用的,所以,确保首先设置好了 。 在Windows 8中,非常好的是摄像头的所有事情都由你来决定 。也就是说,有些事情,你不得不考虑好了 。首先,当你试图访问摄像头时,程序将会提示用户将使用摄像头和麦克风,由用户决定是否授权 。 2.代码实现 1).照片的获取和保存 复制代码 代码如下:private async void Camera_Click(object sender, RoutedEventArgs e) { CameraCaptureUI camera = new CameraCaptureUI(); camera.PhotoSettings.CroppedAspectRatio = new Size(16, 9);//获得图片的宽高比例 StorageFile file = await camera.CaptureFileAsync(CameraCaptureUIMode.Photo); if (file != null) { StorageFolder folder = KnownFolders.PicturesLibrary; //将图片保存到图片库中 await file.CopyAsync(folder,file.Name,NameCollisionOption.ReplaceExisting); }</p> <p> } 这里有几个选项可以设置(比如分辨率和计时器),然后通过tap 或者单击屏幕,就可以触发照相 。如果我们设置了一个CroppedAspectRatio,那么将会看到画面中将会出现四个白点,画面中有4个白色的圆圈,表示裁减的区域 。用户可以改变这个box的size,不过指定一个CroppedAspectRatio,我们可以强制用户选这个具有一定比例的图片 。在示例中,我使用16:9,如果1:1这是一个正方形图片 。没有这个选项的话,用户就不必裁减图片,不过在bottom中的菜单选项中,有一个任意裁剪的选项: 如果用户选择Crop,那么用户就可以裁减图片的任意内容: 最后,当用户点击OK按钮,将会返回一个图片到我们程序中,这个图片我们可以随意使用 。 2).获得视频和保存视频 复制代码 代码如下:private async void Video_Click(object sender, RoutedEventArgs e) { CameraCaptureUI video = new CameraCaptureUI(); video.VideoSettings.Format = CameraCaptureUIVideoFormat.Mp4; video.VideoSettings.AllowTrimming = true; video.VideoSettings.MaxResolution = CameraCaptureUIMaxVideoResolution.HighestAvailable; video.VideoSettings.MaxDurationInSeconds = 600; StorageFile file = await video.CaptureFileAsync(CameraCaptureUIMode.Video); if (file != null) { StorageFolder folder = KnownFolders.VideosLibrary; await file.CopyAsync(folder,file.Name,NameCollisionOption.ReplaceExisting); } } 首先可以指定视频的格式:MP4或WMV 。一般你是看不出这些格式的区别的 。MP4要比WMV使用更流行,但是MP4文件会很大,所以值得考虑一下 。 其次,我将AllowTrimming设置为true,这样用户可以选择根据喜好,选择录制视频的片段 。如下是相关截图,用户可以拖动白色的裁减圈来裁减视频: 第三,我指定了一个MaxDurationInSeconds,这个值显示用户录制视频的最长时间 。如果用户录制的视频比这个时间长,那么用户只能选择30秒(或者是你指 以上就完成了windows8中摄像头的应用 。 简单的来说,从用户摄像头获取相片和视频的很容易的,并且可以定制 。大多数复杂的UI都是有Windows 8直接处理了,所以,我们不用担心与用户的交互 |