Windows Phone 8.1相机初始化-访问被拒绝异常

5
使用Windows Phone的8.1 MediaCapture类。 已声明“音频”和“网络摄像头”的功能,90%的异常原因可能是这个。 问题是,在WP模拟器中它工作得很好,但在实际设备上会出错。 确切的异常在这里

enter image description here

我已经添加了很多检查,以确保我们不会重新初始化已经初始化的相机或在初始化之前尝试读取等等(因为我认为问题是由此引起的)。因此,这种情况发生的可能性非常小。

    private async Task InitializeCameraAsync()
    {
        if (_isInitialized)
        {
            Debug.WriteLine("Skipping unnecessary initialization");
            return;
        }

        Debug.WriteLine("Initializing camera media capture...");
        _deviceCapture = new MediaCapture();
        await _deviceCapture.InitializeAsync(new MediaCaptureInitializationSettings
        {
            VideoDeviceId = _cameraInfoCollection[_currentVideoDevice].Id,
            PhotoCaptureSource = PhotoCaptureSource.VideoPreview,
            AudioDeviceId = _microphoneInfoCollection[_currentAudioDevice].Id
            StreamingCaptureMode = StreamingCaptureMode.Video
        });
        Debug.WriteLine("Initialized camera media capture!");

        // For code completion only, unlikely to be relevant

        // Set up low-lag photo capture
        if (IsNotUsingInstantCapture)
        {
            Debug.WriteLine("Preparing low-lag photo capture");
            var imageEncoding = ImageEncodingProperties.CreateJpeg();
            imageEncoding.Width = PhotoCaptureWidth;
            imageEncoding.Height = PhotoCaptureHeight;
            _lowLagPhotoCapture = await _deviceCapture.PrepareLowLagPhotoCaptureAsync(imageEncoding);
        }

        _isInitialized = true;
        Debug.WriteLine("Initialized camera!");
    }

_mediacapture 然后被绑定到一个 XAML CaptureElement 的 .source 上,以显示预览。


错误的声音与http://msdn.microsoft.com/en-us/library/windows/apps/hh768223中描述的行为一致。在测试设备上,用户帐户是否意外拒绝了此应用程序对网络摄像头或麦克风的访问权限? - Chris Culter
那是我的第一个想法,但是作为 Windows 手机,据我所知,您作为用户无法禁用/启用上述访问权限。据我所知,这仅在从商店安装应用程序时进行初始设置? - Kaelan Fouwels
这个问题有解决方案了吗? - WereWolfBoy
具有讽刺意味的是,随着昨天的Windows手机更新,这个问题又可以正常工作了。因此,该问题应该已经解决了。 :D - WereWolfBoy
在测试我的设备时,它冻结了,在重置后,MediaCapture initializeAsync 函数会抛出异常:"找不到与此错误代码相关联的文本"。它一开始是可以工作的,但在更新后出现了问题。 - WereWolfBoy
显示剩余2条评论
1个回答

2

这是一个与Windows Api有关的临时性bug。该问题已于2014年9月24日发布的Windows Phone 8.1更新中得到修复。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接