我尝试使用Windows Media Editing API从StorageFile中提取缩略图,其代码如下:
public async Task<IInputStream> GetThumbnailAsync(StorageFile file)
{
var mediaClip = await MediaClip.CreateFromFileAsync(file);
var mediaComposition = new MediaComposition();
mediaComposition.Clips.Add(mediaClip);
return await mediaComposition.GetThumbnailAsync(
TimeSpan.Zero, 0, 0, VideoFramePrecision.NearestFrame);
}
但我总是得到以下错误。
为媒体类型指定的数据无效,不一致或不受此对象支持。 (HRESULT异常:0xC00D36B4)
我尝试过不同的输入文件格式(avi / mp4 / mov)以及更小或更大的文件而没有运气。
我知道我可以使用StorageFile.GetThumbnailAsync API提取文件的缩略图,但这仅适用于第一帧。我需要能够从视频文件中提取任意帧。所以MediaComposition API似乎能够满足我的需求。