我正在使用 java swing 和 vlcj 制作桌面应用程序。我使用 MediaListPlayer 类播放播放列表,但我想使用 vlcj 中的 MediaPlayer 类来播放播放列表。如何使用 MediaPlayer 类(没有 MediaListPlayer)播放播放列表? 谢谢。
最佳答案
如果您想使用播放列表,请使用 MediaListPlayer 而不是 MediaPlayer。
MediaListPlayer 组件提供对 MediaPlayer 的访问,并提供专门用于处理播放列表的附加方法。
您还可以使用 AudioListPlayerComponent 或 EmbeddedMediaListPlayerComponent 让事情变得更简单。
GitHub 上的 vlcj 项目中有一个完整的最小示例:
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/