java - 如何在vlcj中使用 "MediaPlayer"准备播放列表?

标签 java media-player vlc libvlc vlcj

我正在使用 java swing 和 vlcj 制作桌面应用程序。我使用 MediaListPlayer 类播放播放列表,但我想使用 vlcj 中的 MediaPlayer 类来播放播放列表。如何使用 MediaPlayer 类(没有 MediaListPlayer)播放播放列表? 谢谢。

最佳答案

如果您想使用播放列表,请使用 MediaListPlayer 而不是 MediaPlayer。

MediaListPlayer 组件提供对 MediaPlayer 的访问,并提供专门用于处理播放列表的附加方法。

您还可以使用 AudioListPlayerComponent 或 EmbeddedMediaListPlayerComponent 让事情变得更简单。

GitHub 上的 vlcj 项目中有一个完整的最小示例:

https://github.com/caprica/vlcj/blob/vlcj-4.x/src/test/java/uk/co/caprica/vlcj/test/component/BasicEmbeddedMediaListPlayerComponentTest.java

MediaListComponent 有处理播放列表的方法,例如:

mediaListPlayerComponent.mediaListPlayer().list().media().add("/home/music/some-cool-synthwave-tune.mp3");
mediaListPlayerComponent.mediaListPlayer().list().media().add("/home/music/another-cool-synthwave-tune.mp3");
mediaListPlayerComponent.mediaListPlayer().list().media().add("/home/music/synthwave-is-the-best.mp3");

mediaListPlayerComponent.mediaListPlayer().controls().play();

如果您需要获取底层 MediaPlayer,请执行以下操作:

long length = mediaListPlayerComponent.mediaPlayer().status().length()

该 mediaPlayer() 方法的返回值是您在问题中提到的“常规”vlcj MediaPlayer。

但是您应该首先检查 MediaListPlayer 上的方法,看看它们是否更适合您的需要。

您可以使用常规 vlcj MediaPlayer 实现您自己的播放列表 - 您只需添加一个 MediaPlayerEventListener 来处理停止或完成的事件,并在收到此类事件时播放下一个媒体。

对于即将推出的 VLC 4.x,我认为这是正确的,如果您需要无缝播放,则需要使用 MediaListPlayer。

关于java - 如何在vlcj中使用 "MediaPlayer"准备播放列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62382390/

相关文章:

netbeans - 如何在 Netbeans 中打开 java 源代码树?

ffmpeg - 将流式 MPEG-4 原始数据转换为 H.264

java - "detached entity passed to persist error"与 JPA/EJB 代码

java - jPanel 调整大小后 jScrollPane 滚动消失

android - 在 SDK 8 中使用 Android MediaPlayer 进行流式传输

JavaFX 媒体循环

Android 知道音乐是否在 MediaPlayer 的特定实例中播放

javascript - 在 IE 页面中嵌入 VLC Player 1.1.7

ffmpeg - 错误的视频时长和 fps

java - 从 Java 桌面应用程序启动、停止、重新启动 Glassfish Server