检索位于WP8.1中应用程序的本地文件夹中的StorageFile(video)的缩略图

我正在尝试将ApplicationFile的缩略图放在应用程序的应用程序包(LocalFolder)中。 存储文件是媒体文件,可以是图像(jpg或png)或video(mp4或wmv)。 现在,当我尝试使用StorageFile类的GetThumbnailAsync(ThumbnailMode)方法获取缩略图时,我得到了一个

System.Exception:找不到组件。

错误,如果文件是图像或不在应用程序包内的video,同样的工作正常。 这是我正在使用的代码隐藏

StorageFile file; private async void BtnGetVideo_Click(object sender, RoutedEventArgs e) { StorageFolder folder = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("Assets\\TestImgs"); file = await folder.GetFileAsync("SMTest.mp4"); } private async void BtnGetThumb_Click(object sender, RoutedEventArgs e) { if (file != null) { BitmapImage image = new BitmapImage(); image.SetSource(await file.GetThumbnailAsync(ThumbnailMode.VideosView)); ImagePreview.Source = image; } } 

这是它的xaml

   

我知道这是一个老问题,但它会帮助任何仍在寻找解决方案的人。

下面是我能够在经过3个小时的奋斗及其工作后成功运行的代码。

 using (VideoFrameReader videoFrameReader = new VideoFrameReader(newCreatedVideo)) { await videoFrameReader.OpenMF(); var image = videoFrameReader.GetFrameAsBitmap(TimeSpan.FromSeconds(0)); videoFrameReader.Finalize(); } 

这是该平台的已知问题。 对于公共目录中的文件,媒体服务提取缩略图作为跟踪video应用程序文件的一部分。

当文件位于应用程序数据容器中时,存储代码会尝试使用不存在的系统缩略图提供程序提取缩略图。

除了将文件移动到公共位置,获取缩略图,保存文件以及移回文件之外,没有其他好的解决方法。