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

How to prepare playlist using "MediaPlayer" in vlcj?

我正在使用 java swing 和 vlcj 制作桌面应用程序。我使用 MediaListPlayer class 播放播放列表,但我想在 vlcj 中使用 MediaPlayer class 来播放。如何使用 MediaPlayer class(没有 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() 方法的 return 值是您在问题中提到的 'regular' vlcj MediaPlayer。

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

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

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