Windows Store应用程序mediaccapture模拟器崩溃
本文关键字:模拟器 崩溃 mediaccapture 应用程序 Store Windows | 更新日期: 2023-09-27 18:09:11
我在我的应用程序中使用以下函数使用mediaccapture类捕获照片并将其复制到剪贴板:
async private void UseCamera()
{
var _ImageFormat = ImageEncodingProperties.CreatePng();
var _fileStream = new InMemoryRandomAccessStream();
try
{
await _mediaCapture.InitializeAsync();
}
catch (Exception e)
{
new Windows.UI.Popups.MessageDialog(e.Message).ShowAsync();
}
try
{
await _mediaCapture.CapturePhotoToStreamAsync(_ImageFormat, _fileStream);
}
catch (Exception e)
{
new Windows.UI.Popups.MessageDialog(e.Message).ShowAsync();
}
var _streamRef = Windows.Storage.Streams.RandomAccessStreamReference.CreateFromStream(_fileStream);
_dataPackage.SetBitmap(_streamRef);
Clipboard.SetContent(_dataPackage);
Clipboard.Flush();
}
应用程序在我的本地机器上运行正常。但是当我尝试在模拟器上运行它时,我得到了这个错误:
"类型为'System '的异常。UnauthorizedAccessException'在senorgridcamera .exe中发生,但未在用户代码中处理
附加信息:Access is denied。(Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))"
谁能帮我一下吗?这听起来像是一个权限问题,作为Admin运行应该修复它。将应用程序清单添加到项目中。然后将<requestedExecutionLevel level="asInvoker" uiAccess="false" />
更改为<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
,这将强制您的应用程序在运行时请求以Admin身份运行
好的,所以我找到了这个东西,它为我工作:
技巧是在await _mediaCapture.InitializeAsync()中传递MediaCaptureInitializationSettings对象;方法作为参数,在你这样做之前,设置对象的PhotoCaptureSource属性为VideoPreview,瞧!
MediaCaptureInitializationSettings _cameraSettings1 = new MediaCaptureInitializationSettings();
_cameraSettings1.PhotoCaptureSource = PhotoCaptureSource.VideoPreview;
await _mediaCapture.InitializeAsync(_cameraSettings1);
希望有帮助。欢呼:)