2013-02-20 118 views
0

我正在開發Windows 8商店應用程序,我有這個問題, 我希望用戶從文件選取器添加視頻,並且我管理它, 問題是我想要顯示在GridView中的視頻圖像, 就像在某個位置的視頻快照,我試過媒體元素,它不工作 也是一個圖像,它沒有任何意義。在winRT gridview中顯示視頻圖像

+0

您可能需要使用Media Foundation,也許DirectX和WIC將其保存在一個縮略圖緩存中。 – 2013-02-21 04:47:03

回答

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的質感。 Media engine native C++ video playback sample顯示了你如何在本地使用它。如果您搜索TransferVideoFrame + SharpDX - 您可以在C#中找到使用SharpDX version of this methodthis sample。將該幀轉換爲紋理後 - 您可以使用MapUnmap方法(如​​)將紋理內容複製到WriteableBitmap。您也可以使用BitmapEncoder a here或直接從DirectX紋理使用WIC將文件保存到文件中,或者使用012D中的SharpDX Toolkit。您可能需要構建縮略圖緩存以避免每次顯示列表時都必須處理視頻,因此保存到文件是您應該執行的操作。

0

自己的解決方案,你其他地方引用應該至少一些影片的工作:

var thumb = await 
    storageFile.GetThumbnailAsync(
     Windows.Storage.FileProperties.ThumbnailMode.PicturesView, 
     1000, 
     Windows.Storage.FileProperties.ThumbnailOptions.UseCurrentScale); 
0

我建議使用GetThumbnailAsync(),其作品一樣好。你甚至不需要獲取視頻屬性或類似的東西。如果加載StorageFile,這應該適用於任何格式的普通視頻。