我在Windows Phone 8.1通用应用程序上尝试使用MediaCapture api启动相机。该代码在Windows 8.1和Windows Phone 8.1模拟器上正常工作。我能够发射相机和拍照。
但它会在Windows Phone 8.1设备上引发UnauthorizedException。类似的问题要求这里
但是,我不知道有人绕过这个问题。我在设备上的侧载应用程序进行测试。
正在初始化MediaCapture:
DeviceInformation cameraDevice = await GetCameraID(); if(cameraDevice!= null) { mMediaManager_ = new Windows.Media.Capture.MediaCapture(); var settings = new Windows.Media.Capture.MediaCaptureInitializationSettings(); settings.StreamingCaptureMode = Windows.Media.Capture.StreamingCaptureMode.Video; settings.MediaCategory = Windows.Media.Capture.MediaCategory.Other; settings.AudioProcessing = Windows.Media.AudioProcessing.Default; settings.VideoDeviceId = cameraDevice.Id; await mMediaManager_.InitializeAsync(settings); mMediaManager_.RecordLimitationExceeded + = new Windows.Media.Capture.RecordLimitationExceededEventHandler(RecordLimitationExceeded); mMediaManager_.Failed + = new Windows.Media.Capture.MediaCaptureFailedEventHandler(RecordFailed); }拍摄照片:
mMediaStorageFile_ = await folder.CreateFileAsync(fileName,CreationCollisionOption.GenerateUniqueName); ImageEncodingProperties imageProperties = ImageEncodingProperties.CreateJpeg(); await mMediaManager_.CapturePhotoToStorageFileAsync(imageProperties,mMediaStorageFile_); mCameraScreen_.setPreviewImage(mMediaStorageFile_);解决方案
似乎这个错误已经更正更新。
由于我在开发者预览版本8.10.14176.243上测试, MediaCapture.InitializeAsync 问题。
I am trying to launch camera using MediaCapture api on my windows phone 8.1 universal app. The code works fine on Windows 8.1 and Windows Phone 8.1 emulator. I am able to launch camera and take picture.
But it throws an UnauthorizedException on Windows Phone 8.1 device. Similar question is asked Here
But, i dont know whether someone got around this problem. And I am sideloading application on device for testing. My requirement is to launch camera on sideloaded applications.
Code snippet:
Initializing MediaCapture:
DeviceInformation cameraDevice = await GetCameraID(); if (cameraDevice != null) { mMediaManager_ = new Windows.Media.Capture.MediaCapture(); var settings = new Windows.Media.Capture.MediaCaptureInitializationSettings(); settings.StreamingCaptureMode = Windows.Media.Capture.StreamingCaptureMode.Video; settings.MediaCategory = Windows.Media.Capture.MediaCategory.Other; settings.AudioProcessing = Windows.Media.AudioProcessing.Default; settings.VideoDeviceId = cameraDevice.Id; await mMediaManager_.InitializeAsync(settings); mMediaManager_.RecordLimitationExceeded += new Windows.Media.Capture.RecordLimitationExceededEventHandler(RecordLimitationExceeded); mMediaManager_.Failed += new Windows.Media.Capture.MediaCaptureFailedEventHandler(RecordFailed); }Taking Photo:
mMediaStorageFile_ = await folder.CreateFileAsync(fileName, CreationCollisionOption.GenerateUniqueName); ImageEncodingProperties imageProperties = ImageEncodingProperties.CreateJpeg(); await mMediaManager_.CapturePhotoToStorageFileAsync(imageProperties, mMediaStorageFile_); mCameraScreen_.setPreviewImage(mMediaStorageFile_);解决方案
It seems that this bug has been corrected with the last update.
As I've tested on developer preview version 8.10.14176.243, MediaCapture.InitializeAsync should work now without problems.
更多推荐
Windows Phone 8.1相机初始化
发布评论