我需要从使用MediaElement的视频播放中获取缩略图
为此,我了解到Windows 8.1 API中有RenderTargetBitmap
RenderTargetBitmap a = new RenderTargetBitmap();
await a.RenderAsync(myMedia);
thumb.Source = a;
第二种方法是借助 WinRTXamlToolkit.Composition 工具包获得的,该工具包使用 WriteableBitmapRenderExtensions 类进行渲染
WriteableBitmap w = await WriteableBitmapRenderExtensions.Render(myMedia);
thumb.Source = w;
这两种方法都适用于所有 UIElement ,但不适用于 MediaElement
将此源文件提供给Image对象时,只能看到黑屏。
任何人都可以告诉我为什么吗?以及如何从视频中获取缩略图?
答案 0 :(得分:0)
您提到的方法似乎在这方面受到限制。我仍然会尝试使用RenderTargetBitmap,但是在MediaElement之上覆盖了一些东西。我相信如果你在MediaElement上放置任何东西,比如0.01不透明度,1x1大小的黑色矩形 - 它将切换到一些不同的渲染模式,RenderTargetBitmap可以渲染它。否则,我认为有人在这里讨论了一个从视频流中捕获帧的问题。 IIRC这是一个非常复杂的过程,涉及使用DirectX或Media Foundation以及相当多的本机代码。