【问题标题】:MediaCapture preview doesn't workMediaCapture 预览不起作用
【发布时间】:2016-11-15 05:16:54
【问题描述】:

这很奇怪。看起来获取简单视频流并在 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 不会显示任何内容。有什么问题?

一些补充说明:

  • 我正在一台实际上没有网络摄像头的在线开发机器上编写代码。因此,我安装了ManyCam 的免费版本。 TestMyCam 显示它工作得很好。
  • 由于与上述相同的原因,没有录音设备。
  • 我尝试使用this MSDN sample project 提供的代码。它也无法显示任何预览。事实上,该项目在没有任何修改的情况下甚至无法启动预览,因为它假设将连接一个麦克风。

编辑:

奇怪的事情正在发生。问题似乎是由我提供的开发机器上的奇怪配置引起的,而不是代码本身。

  • await mediaCaptureManager.InitializeAsync,以前不会导致错误,现在抛出异常并显示消息 The RPC server is unavailable。没有提供进一步的信息。这个消息很疯狂,因为它与媒体根本无关!

  • 我终于设法拿到了一台安装了网络摄像头和 VS 的笔记本电脑,它运行良好。不知道如何解决这个问题 - 我无法在这台笔记本电脑上继续开发,我只能将它用于这次测试。

【问题讨论】:

    标签: c# xaml winrt-xaml webcam


    【解决方案1】:

    事实证明,问题完全出在所提供的开发机器上。在我的本地机器上测试代码时,它工作得非常好。

    仔细想想,这不是这台开发机器第一次出现故障;由于某种原因,VS中可用的“平板电脑模拟器”也无法启动......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-01
      • 2015-03-06
      • 1970-01-01
      • 2017-12-08
      • 1970-01-01
      相关资源
      最近更新 更多