我正在尝试将在 WinRT IBasicVideoEffect 中创建的视频绘制到 Win2d CanvasControl。
Win2d 视频效果示例是基于将 IBasicVideoEffect 接口实现为 WinRT 组件而构建的。从方法 SetEncodingProperties (IBasicVideoEffect) 和从 CanvasControl() 创建的位图具有不同的设备,我无法将一个绘制到另一个。
public void ProcessFrame(ProcessVideoFrameContext context)
{
_mediaElementCanvasRenderTarget = CanvasRenderTarget.CreateFromDirect3D11Surface(canvasDevice, context.OutputFrame.Direct3DSurface);
}
public void SetEncodingProperties(VideoEncodingProperties encodingProperties, IDirect3DDevice device)
{
canvasDevice = CanvasDevice.CreateFromDirect3D11Device(device);
}
在这里,我在 CanvasControl 上绘制后得到 _mediaElementCanvasRenderTarget
private void canvasControl_Draw(CanvasControl sender, CanvasDrawEventArgs args)
{
args.DrawingSession.DrawImage(_mediaElementCanvasRenderTarget);
}
由于不同的设备而给出错误。我还尝试将一个设备设置为两个 UIElement,但没有帮助。
如何处理这种情况?