这很奇怪。看起来像获取简单视频流并在XAML表单上查看它的代码应该非常简单。
我只想说,我有以下,非常简单,查看:
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Border BorderBrush="White" BorderThickness="1" Width="400" Height="400" Padding="2">
<CaptureElement x:Name="captureElement" Loaded="captureElement_Loaded" Stretch="Uniform"/>
</Border>
<StackPanel HorizontalAlignment="Left" VerticalAlignment="Bottom" Orientation="Horizontal">
<Button Content="preview start" Tapped="StartPrevTapped" x:Name="prevStart"/>
<Button Content="preview stop" Tapped=StopPrevTapped" x:Name="prevStop" IsEnabled="False"/>
</StackPanel>
</Grid>
以下是3种方法:
MediaCapture mediaCaptureManager = new MediaCapture();
private async void captureElement_Loaded(object sender, RoutedEventArgs e)
{
var cameraDevices = await DeviceInformation.FindAllAsync(DeviceClass.VideoCapture);
var camera = cameraDevices.First();
await mediaCaptureManager.InitializeAsync(new MediaCaptureInitializationSettings { VideoDeviceId = camera.Id });
}
private async void StartPrevTapped(object sender, TappedRoutedEventArgs e)
{
captureElement.Source = mediaCaptureManager;
await mediaCaptureManager.StartPreviewAsync();
prevStart.IsEnabled = false;
prevStop.IsEnabled = true;
}
private async void StopPrevTapped(object sender, TappedRoutedEventArgs e)
{
await mediaCaptureManager.StopPreviewAsync();
prevStart.IsEnabled = true;
prevStop.IsEnabled = false;
}
代码不会抛出任何异常,但CaptureElement
不会显示任何异常。可能有什么不对?
一些补充说明:
修改
奇怪的事情正在发生。似乎问题是由我提供的开发机器上的奇怪配置引起的,而不是代码本身。
await mediaCaptureManager.InitializeAsync
之前没有出现任何错误,现在会使用消息The RPC server is unavailable
抛出异常。没有提供进一步的信息。这条消息很疯狂,因为它根本与媒体无关!
我终于设法安装了一台带有网络摄像头和VS的笔记本电脑,并且工作正常。不知道如何解决这个问题 - 我无法在这台笔记本电脑上继续开发,我只能用它来进行这项测试。
答案 0 :(得分:0)
事实证明,这些问题完全取决于所提供的开发机器。在本地计算机上测试代码时,它可以正常工作。
来考虑一下,这不是这台开发机器第一次投入使用;出于某种原因,平板电脑模拟器&#34;在VS中可用也无法启动...