Windows 8 Metro风格应用程序媒体捕获异常

Windows 8 Metro风格应用程序媒体捕获异常,windows-8,microsoft-metro,Windows 8,Microsoft Metro,我正在编写我的第一个metro风格的应用程序。几天前,我已经基于这个示例()编写了拍摄照片的代码,它可以正常工作。随着Windows8版本预览版和VisualStudio2012候选版的发布,相同的代码片段不起作用。似乎摄像头的访问有问题,但在Package.appxmanifest中,我已经检查了网络摄像头的功能。 xaml: <Canvas x:Name="previewCanvas1" Width="320" Height="240" Background='Gray'> &

我正在编写我的第一个metro风格的应用程序。几天前,我已经基于这个示例()编写了拍摄照片的代码,它可以正常工作。随着Windows8版本预览版和VisualStudio2012候选版的发布,相同的代码片段不起作用。似乎摄像头的访问有问题,但在Package.appxmanifest中,我已经检查了网络摄像头的功能。 xaml:

<Canvas x:Name="previewCanvas1" Width="320"  Height="240" Background='Gray'>
<Image x:Name="imageElement1"  Width="320" Height="240" Visibility="Collapsed"/>
<CaptureElement x:Name="previewElement1" Width="320" Height="240" />
</Canvas>
<StackPanel Orientation="Horizontal" Margin="20" HorizontalAlignment="Center">
 <Button Width="120" x:Name="btnStartPreview2" Click="btnStartPreview_Click" IsEnabled="true"  Margin="0,0,10,0"  Background="#FFC3C3C3">Da Webcam</Button>
<Button Width="120" x:Name="btnTakePhoto2" Click="btnTakePhoto_Click" IsEnabled="false"  Margin="0,0,10,0"  Background="#FFC3C3C3">Scatta</Button>
</StackPanel>
MediaCapture mediaCaptureMgr;
async void btnStartPreview_Click(Object sender, RoutedEventArgs e)
        {
            try
            {

                mediaCaptureMgr = new Windows.Media.Capture.MediaCapture();
                await mediaCaptureMgr.InitializeAsync();

                previewElement1.Source = mediaCaptureMgr;

                await mediaCaptureMgr.StartPreviewAsync();

            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

异常为:“访问被拒绝。(来自HRESULT的异常:0x80070005(E_ACCESSDENIED))”,但如上所述,已检查网络摄像头功能

我解决了。要使用网络摄像头,您必须在package.appxmanifest中指出应用程序需要访问网络摄像头和麦克风。奇怪但真实

您可以将MediaCapture类设置为在调用InitializeAsync()时仅捕获视频;话虽如此,我也一直收到这些疯狂的未知错误,大概是因为不同的原因。即使在检查麦克风后,我也会收到相同的错误。