我正在编写我的第一个都市风格的应用程序。几天前,我已根据此示例(here)编写了拍摄照片的代码,但它确实有效。随着Windows 8发布预览和visual studio 2012发布候选版本的发布,相同的代码段不起作用。似乎访问摄像机存在问题,但在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))”但如上所述,网络摄像头功能已被检查!
答案 0 :(得分:9)
我解决了。要使用网络摄像头,您必须在package.appxmanifest中指明应用程序需要访问网络摄像头和麦克风。奇怪但真实!