Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF中的视频缩略图_Wpf_Video_Mvvm_Mediaelement - Fatal编程技术网

WPF中的视频缩略图

WPF中的视频缩略图,wpf,video,mvvm,mediaelement,Wpf,Video,Mvvm,Mediaelement,我正在尝试将视频添加到我的WPF项目中,但找不到生成视频预览/缩略图的正确解决方案。互联网上的很多解决方案都提到你应该播放视频,然后在代码隐藏中暂停视频。我真的不喜欢这个解决方案,尤其是因为它与我们项目的MVVM结构结合起来会变得非常混乱 我想到的另一个解决方案是从视频生成一个屏幕截图,并显示该屏幕截图而不是视频,但我也没有成功地创建屏幕截图 你们是如何显示视频缩略图的?你们可以通过将MediaPlayer的可擦洗属性设置为true来实现这一点,但仍然需要向前移动以实时捕获任何电影 有关更多示例

我正在尝试将视频添加到我的WPF项目中,但找不到生成视频预览/缩略图的正确解决方案。互联网上的很多解决方案都提到你应该播放视频,然后在代码隐藏中暂停视频。我真的不喜欢这个解决方案,尤其是因为它与我们项目的MVVM结构结合起来会变得非常混乱

我想到的另一个解决方案是从视频生成一个屏幕截图,并显示该屏幕截图而不是视频,但我也没有成功地创建屏幕截图


你们是如何显示视频缩略图的?

你们可以通过将MediaPlayer的可擦洗属性设置为true来实现这一点,但仍然需要向前移动以实时捕获任何电影

有关更多示例,请阅读Clint Rutkas的这篇精彩博客:


您可以使用ffmpeg.exe将视频的缩略图生成为jpg文件

ffmpeg  -itsoffset -4  -i test.avi -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg

这是一种更简单的方法,因为默认情况下,我们只显示缩略图,而媒体元素是隐藏的或不活动的,只有当我们单击它时,我们才开始播放视频。这也提高了资源利用率,因为如果您要显示多个视频,媒体元素会很繁重。

谢谢您的回答。您的解决方案会起作用,但我希望在我的应用程序中自动生成缩略图。用户可以通过内容管理系统上传视频。应用程序本身从数据库获取信息并下载te视频。最好的方法是在上传视频时将缩略图存储在下载视频的同一位置。但我想无论您选择什么解决方案,都将最适合您的应用程序,因为我不知道全部情况。将LoadedBehavior设置为暂停并启用清理确实有效。这不是最漂亮的解决方案,但至少是有效的。