0

我使用Vlc.DotNet.Wpf,并且我需要播放器加载视频并仅显示第一帧,以便控件获得适当的大小并且用户可以看到视频正在谈论的内容,如何做到这一点?

如果我打电话_vlcPlayer.SourceProvider.MediaPlayer.SetMedia(stream)什么都没发生,并且如果我打电话_vlcPlayer.SourceProvider.MediaPlayer.Play(stream)给视频运行超过一帧。

我试过_vlcPlayer.SourceProvider.MediaPlayer.Time = 1什么都没发生。

如何才能做到这一点?

4

3 回答 3

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

于 2020-06-18T08:02:59.920 回答
1

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

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

您也可以使用播放,并在收到 Playing 事件后立即暂停视频(不要忘记切换线程)。

于 2020-06-17T16:41:56.310 回答
1

我让它与这段代码一起工作:

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

希望对你有效。

于 2021-07-19T19:29:57.920 回答