C# 在winRT gridview中显示视频图像
我正在开发一个Windows 8应用商店应用程序,我有这个问题, 我希望用户从文件选择器添加视频,我管理了它, 问题是我想在GridView中显示视频图像, 就像视频在某个位置的快照一样,我尝试了媒体元素,但它不起作用C# 在winRT gridview中显示视频图像,c#,xaml,windows-runtime,winrt-xaml,mediaelement,C#,Xaml,Windows Runtime,Winrt Xaml,Mediaelement,我正在开发一个Windows 8应用商店应用程序,我有这个问题, 我希望用户从文件选择器添加视频,我管理了它, 问题是我想在GridView中显示视频图像, 就像视频在某个位置的快照一样,我尝试了媒体元素,但它不起作用 还有一个图像,它没有意义。这个问题可能没有一个纯粹的C#解决方案。也许SharpDX会让你这么做,但我没有试过,也不知道以前是否做过。如果您查看这两个线程: --您应该看到,有一种方法可以用于将帧从视频流复制到DirectX纹理。显示了如何在本地使用它。如果您搜索Transf
还有一个图像,它没有意义。这个问题可能没有一个纯粹的C#解决方案。也许SharpDX会让你这么做,但我没有试过,也不知道以前是否做过。如果您查看这两个线程:
--您应该看到,有一种方法可以用于将帧从视频流复制到DirectX纹理。显示了如何在本地使用它。如果您搜索TransferVideoFrame+SharpDX,您可以在C#中找到使用。将该帧传输到纹理后-可以使用
Map
和Unmap
等方法将纹理的内容复制到WriteableBitmap
。您还可以使用BitmapEncoder
a将其保存到文件中,或使用WIC或SharpDX Toolkit将其直接从DirectX纹理保存到文件中,如中所示。您可能希望建立缩略图缓存,以避免每次显示列表时都必须处理视频,因此无论如何都应该将其保存到文件中。您在别处引用的解决方案至少适用于某些视频:
var thumb = await
storageFile.GetThumbnailAsync(
Windows.Storage.FileProperties.ThumbnailMode.PicturesView,
1000,
Windows.Storage.FileProperties.ThumbnailOptions.UseCurrentScale);
我建议使用
GetThumbnailAsync()
,这同样有效。你甚至不需要获得视频属性或类似的东西。如果加载了StoundAgFILE,这将适用于任何格式的普通视频。您可能需要使用MediaFoundation和DirectX和WIC来将其保存在一个缩略图缓存中。