如何在Windows Store应用程序中从视频中获取缩略图?

3
我目前正在开发一个应用程序,其中有一个功能是录制视频。我知道如何录制视频并将其保存在应用程序的localFolder中。我的问题是,在用户录制视频后,我需要向他显示缩略图。因此,我想从录制的视频中提取第一帧。最终的视频存储在StorageFile对象中,但我不知道如何从StorageFile对象中获取图片。
请问是否有人能提供一些示例代码,告诉我如何做到这一点。我正在使用默认的相机API来录制视频。我的代码如下:
private async void CaptureVideo()
{
    CameraCaptureUI cameraUI = new CameraCaptureUI();
    cameraUI.VideoSettings.Format=CameraCaptureUIVideoFormat.Mp4;
    cameraUI.VideoSettings.MaxDurationInSeconds = 10;
    StorageFile capturedVideo = await cameraUI.CaptureFileAsync(CameraCaptureUIMode.Video);
    string videoName="video_" + GetDateTimestamp() +".mp4";
    if(capturedVideo !=null)
    {
        saveVideoandShowThumbnail(capturedVideo, videoName);
    }
}

saveVideoandShowThumbnail() 方法的作用是将视频存储在“Videos”文件夹中并生成缩略图。


你有检查过这个网址吗?https://dev59.com/pmnWa4cB1Zd3GeqPwQdj - Gopesh Sharma
这个在视频上也能起作用吗? - Kinjan Bhavsar
你有一个选项可以获取缩略图,方法是 capturedVideo.getThumbnailAsync(mode).done( /* Your success and error handlers */ ); 其中 mode 是缩略图模式。 - Gopesh Sharma
使用 StorageFile.GetThumbnailAsync 可以获取视频文件的缩略图,但是根据这个答案,有一个需要注意的地方,你需要先将视频移动到公共视频库。 - kennyzx
我无法将它移动到公共目录,请告诉我除此之外是否有其他解决方法? - Kinjan Bhavsar
@GopeshSharma 如果 StorageFile 包含图像,第一个链接才有效。 - Kinjan Bhavsar
1个回答

4

StorageFile.GetThumbnailAsync() 解决了我的问题。我尝试使用以下代码显示视频中的图像。希望能帮到其他人。

bitmap = new BitmapImage();
bitmap.SetSource(await videoFile.GetThumbnailAsync(ThumbnailMode.SingleItem));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接