我正在开发Windows 8商店应用,我有这个问题, 我希望用户从文件选择器中添加视频并进行管理, 问题是我想在GridView中显示视频图像, 就像在特定位置拍摄视频一样,我尝试了媒体元素并且它无法正常工作 也是一个图像,它没有意义。
答案 0 :(得分:0)
可能没有针对此问题的纯C#解决方案。也许SharpDX会让你这样做,但我没有尝试过,我不知道它是否曾经做过。如果你看看这两个主题:
- 您应该看到有一种TransferVideoFrame
方法可用于将视频流中的帧复制到DirectX纹理。 Media engine native C++ video playback sample显示了如何在本地使用它。如果您搜索TransferVideoFrame + SharpDX - 您可以在C#中找到使用this sample的SharpDX version of this method。将该帧传输到纹理后 - 您可以使用WriteableBitmap
和Map
等Unmap
方法将纹理内容复制到BitmapEncoder
。您也可以使用{{1}} here或使用WIC直接从DirectX纹理将文件保存到文件,或者像here中一样将SharpDX Toolkit保存到文件中。您可能希望构建一个缩略图缓存,以避免每次显示列表时都必须处理视频,因此保存到文件是您应该做的事情。
答案 1 :(得分:0)
您在别处引用的自己的解决方案至少应该适用于某些视频:
var thumb = await
storageFile.GetThumbnailAsync(
Windows.Storage.FileProperties.ThumbnailMode.PicturesView,
1000,
Windows.Storage.FileProperties.ThumbnailOptions.UseCurrentScale);
答案 2 :(得分:0)
我建议使用GetThumbnailAsync()
,它的效果也一样。您甚至不需要获取视频属性或类似内容。如果加载了StorageFile,这应适用于任何格式的普通视频。