0

我正在开发一个 Windows 8 应用商店应用程序,我遇到了这个问题,我希望用户从文件选择器中添加视频并管理它,问题是我想在 GridView 中显示视频图像,比如快照视频在某个位置,我尝试了媒体元素,它也无法正常工作,图像也没有意义。

4

3 回答 3

0

您在其他地方引用的您自己的解决方案至少适用于某些视频:

var thumb = await
    storageFile.GetThumbnailAsync(
        Windows.Storage.FileProperties.ThumbnailMode.PicturesView,
        1000,
        Windows.Storage.FileProperties.ThumbnailOptions.UseCurrentScale);
于 2013-02-21T09:49:27.467 回答
0

这个问题可能没有纯 C# 解决方案。也许 SharpDX 会让你这样做,但我没有尝试过,我不知道以前是否做过。如果你看这两个线程:

http://social.msdn.microsoft.com/Forums/fil-PH/wingameswithdirectx/thread/05731d4f-5b7f-4ed1-8e28-94604655139e

http://social.msdn.microsoft.com/Forums/en/wingameswithdirectx/thread/ffacd05c-6e9e-43bf-b691-99127240730c

-- 您应该看到有一种TransferVideoFrame方法可用于将帧从视频流复制到 DirectX 纹理。媒体引擎原生 C++ 视频播放示例展示了如何原生使用它。如果您搜索 TransferVideoFrame+SharpDX - 您可以找到在 C#中使用此方法的 SharpDX 版本的示例。将该帧传输到纹理后 - 您可以使用此处的和方法将纹理的内容复制到 a 中。您也可以使用此处将其保存到文件中,或者直接从 DirectX 纹理使用 WIC 将其保存到文件中,或者说 SharpDX Toolkit,如此WriteableBitmapMapUnmapBitmapEncoder. 您可能希望构建缩略图缓存以避免每次显示列表时都必须处理视频,因此无论如何都应该保存到文件中。

于 2013-02-21T05:51:33.657 回答
0

我建议使用GetThumbnailAsync(),它也同样有效。您甚至不需要获取视频属性或类似的东西。如果加载了 StorageFile,这应该适用于任何格式的普通视频。

于 2015-07-02T04:47:46.143 回答