0

我需要从使用 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 对象时,只有黑屏可见。

谁能告诉我为什么?以及如何从视频中获取缩略图?

4

1 回答 1

0

您提到的方法似乎在这方面可能受到限制。我仍然会尝试 RenderTargetBitmap 但在 MediaElement 上覆盖了一些东西。我相信如果您在 MediaElement 上放置任何东西,例如 0.01 不透明度、1x1 大小的黑色矩形 - 它会切换到在某些不同的渲染模式下运行,在这种模式下,RenderTargetBitmap 可能能够渲染它。否则,我认为有人在这里讨论过从视频流中捕获帧的问题。IIRC 这是一个相当复杂的过程,涉及使用 DirectX 或 Media Foundation 以及相当多的本机代码。

于 2013-07-31T20:57:10.880 回答