uwp将StorageItemThumbnail转换为RandomAccessStreamReference

时间:2018-04-16 12:05:04

标签: c# xaml uwp media-player video-player

正如您在以下代码中看到的那样

var mediaPlaybackItem = new MediaPlaybackItem(MediaSource.CreateFromStorageFile(myVideoFile));
MediaItemDisplayProperties props = mediaPlaybackItem.GetDisplayProperties();
props.Type = Windows.Media.MediaPlaybackType.Video;
props.VideoProperties.Title = CurrentVideo.MyVideoFile.DisplayName;
props.Thumbnail = (await CurrentVideo.MyVideoFile.GetThumbnailAsync(ThumbnailMode.VideosView));
mediaPlaybackItem.ApplyDisplayProperties(props);

在我的 uwp 应用中我试图将 DisplayProperties 设置为 mediamedbackiteitem systemmediatransportcontrols 。我可以设置其他属性,但是当我尝试设置缩略图时,我从GetThumbnailAsync获取 StorageItemThumbnail 对象,我想将其分配给 props.Thumbnail RandomAccessStreamReference 类型,所以我想知道如何将其转换为所需类型。

  

systemmedia传输控件确实有一种通过从文件中自动复制元数据来更新缩略图的方法。但在我的场景中,我正在使用 mediaplaybackitem 更新显示属性,文档确实显示了如何在此处更新标题,但他们没有显示如何更新缩略图。当媒体打开时我也无法访问storagefile对象,这就是我想在 mediaPlayBackItem 对象上设置显示属性的原因,这样只要我的媒体源发生变化,它就可以自动管理。

2 个答案:

答案 0 :(得分:1)

using Windows.Media;
using Windows.Storage;
using Windows.Storage.Streams;
....
SystemMediaTransportControlsDisplayUpdater updater = _systemMediaTransportControls.DisplayUpdater;
....
_ImagePath = @"c:\temp\img.jpg";
StorageFile file2 = await StorageFile.GetFileFromPathAsync(_ImagePath);
updater.Thumbnail = RandomAccessStreamReference.CreateFromFile(file2);

答案 1 :(得分:0)

var thumb = await CurrentVideo.MyVideoFile.GetThumbnailAsync(ThumbnailMode.VideosView); props.Thumbnail = RandomAccessStreamReference.CreateFromStream(thumb);

对于它的价值,因为Thumbnails是实际的RandomAccessStreams,当你完成它们时最好处理它们。