Vlc.DotNet如何在Wpf中打开视频并显示第一帧?

时间:2020-06-17 15:55:44

标签: c# wpf vlc libvlc vlc.dotnet

我使用Vlc.DotNet.Wpf,我需要播放器加载视频并仅显示第一帧,以便控件获得适当的大小,并且用户可以看到视频在说什么,这怎么办?完成吗?

如果我呼叫_vlcPlayer.SourceProvider.MediaPlayer.SetMedia(stream),则什么也没有发生;如果我呼叫_vlcPlayer.SourceProvider.MediaPlayer.Play(stream),则视频播放的帧数超过一帧。

我尝试_vlcPlayer.SourceProvider.MediaPlayer.Time = 1没事。

这怎么办?

3 个答案:

答案 0 :(得分:1)

您可以解析媒体并从第一个视频轨道中找到其宽度和高度。

您可以使用快照API获取可以显示的视频的jpeg快照。 (该API将在libvlc4中更改)

您还可以使用播放功能,并在获得“播放”事件后立即暂停视频(不要忘记切换线程)。

答案 1 :(得分:1)

或者,对于cube45的答案,我相信还有一个libvlc选项。

--start-paused, --no-start-paused 
                                 Start paused
                                 (default disabled)
          Pause each item in the playlist on the first frame.

https://wiki.videolan.org/VLC_command-line_help

答案 2 :(得分:1)

我让它与此代码一起工作:

vlcVideoPlayer.VlcMediaplayerOptions = new string[]{"--start-paused"};
vlcVideoPlayer.Play(new Uri("Video Link/Directory"));
vlcVideoPlayer.Time = 1;

希望它对你有用。