在多个 CaptureElement.Source 中使用一个 MediaCapture
Using one MediaCapture in multiple CaptureElement.Source
我正在尝试将一个 MediaCapture 预览到多个 (2) CaptureElement。例如,我在屏幕角落有一个大的 CaptureElement 和一个迷你地图。可能吗?
当我尝试将初始化的 Capture 设置为一个 CaptureElement 时,一切正常,但是当我在 2 个地方共享它时,我收到类似“当前状态不支持的操作”的错误。
这是代码示例,我正在尝试使用:
await video.TryStopPreviewingAsync();
minimap.Source = null;
await minimap.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
minimap.Source = video.Stream.Capture;
});
await video.TryStartPreviewingAsync();
minimap
是第二个 CaptureElement,video.Resources.First.Stream.Capture
当前正在预览捕获。
TryStop/StartPreviewingAsync
调用 Capture.Stop/StartPreviewingAsync()
我试图停止预览第一个捕获,在 2 个地方将其设置为源,然后开始在两个捕获元素上预览,但出现错误。
I'm getting error like "unsupported operation for current state".
这是设计使然,当将 Capture
传递给多个 CaptureElement
时会抛出异常。
对于您的方案,更好的方法是使用图像控件替换 CaptureElement
,并使用 MediaFrameReader
处理帧,然后为 FrameArrived
.[=18 内的每个帧生成位图=]
这里是official code sample,您可以参考。
我正在尝试将一个 MediaCapture 预览到多个 (2) CaptureElement。例如,我在屏幕角落有一个大的 CaptureElement 和一个迷你地图。可能吗?
当我尝试将初始化的 Capture 设置为一个 CaptureElement 时,一切正常,但是当我在 2 个地方共享它时,我收到类似“当前状态不支持的操作”的错误。
这是代码示例,我正在尝试使用:
await video.TryStopPreviewingAsync();
minimap.Source = null;
await minimap.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
minimap.Source = video.Stream.Capture;
});
await video.TryStartPreviewingAsync();
minimap
是第二个 CaptureElement,video.Resources.First.Stream.Capture
当前正在预览捕获。
TryStop/StartPreviewingAsync
调用 Capture.Stop/StartPreviewingAsync()
我试图停止预览第一个捕获,在 2 个地方将其设置为源,然后开始在两个捕获元素上预览,但出现错误。
I'm getting error like "unsupported operation for current state".
这是设计使然,当将 Capture
传递给多个 CaptureElement
时会抛出异常。
对于您的方案,更好的方法是使用图像控件替换 CaptureElement
,并使用 MediaFrameReader
处理帧,然后为 FrameArrived
.[=18 内的每个帧生成位图=]
这里是official code sample,您可以参考。