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))"

谁能帮我一下吗?

Windows Store应用程序mediaccapture模拟器崩溃

这听起来像是一个权限问题,作为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);

希望有帮助。欢呼:)