gpt4 book ai didi

java - 连续播放同一视频的 2 个不同部分

转载 作者:行者123 更新时间:2023-12-01 13:53:20 26 4
gpt4 key购买 nike

我有一个媒体播放器,即 vlcj,通过它我可以在 java 框架和面板中显示视频,我想知道是否有一种方法可以让我一个接一个地播放视频的 2 部分,例如我想播放 10:00 到 12:00 和 13:00 到 14:00,中间没有任何中断,我通过在嵌入式媒体播放器的完成事件中写入 playmedia 13:00 到 14:00 来完成此操作,但我想知道是否还有另一种方法或更短的方法,我使用 vlcj 和 java (netbeans)

 p = new Canvas();
p.setSize(p1.getWidth(),p1.getHeight());
o = new Canvas();
p1.add(p,BorderLayout.CENTER);
p2.add(o,BorderLayout.CENTER);
m1 = new MediaPlayerFactory();
m2 = new MediaPlayerFactory();
e1 = m1.newEmbeddedMediaPlayer();
e1.setVideoSurface(m1.newVideoSurface(p));
e1.playMedia("src/Video/656.mkv", ":start-time="+(60*15 + 24.6), ":stop-time="+(60*15 + 30.1));

最佳答案

您有两个主要选择:

  1. 使用 EmbeddedMediaListPlayerComponent 而不是 EmbeddedMediaPlayerComponent,并将您的媒体(以及开始时间和停止时间媒体选项)添加到播放列表。

  2. 使用包含表示播放列表项(开始时间、结束时间和 MRL)的对象的 ArrayList 来实现您自己的播放列表,并使用媒体播放器事件中的 finish() 和 error() 回调来管理它听众。因此,您会收到一个 finish() 事件,然后前进到播放列表中的下一个项目并播放该项目(使用开始时间和停止时间媒体选项)。

#1 的主要问题是底层 libvlc native 媒体列表播放器不如常规 native 媒体播放器可靠。它似乎有更多错误并且容易崩溃。

#1 的主要优点是它是连续播放多个视频的最快、最无缝的方式。

#2 的主要问题是您需要做更多的工作来实现。此外,从一个视频到下一个视频的切换可能不像#1 那样无缝。

对于#2,您可能还需要考虑如何同步对播放列表的访问。

关于java - 连续播放同一视频的 2 个不同部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19795134/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com