我正在播放视频文件(全屏),我希望在视频播放完毕后播放音频文件。
事情是:
- 我能够全屏播放视频文件;
我能够检测到视频文件何时播放完毕:
while(!mpu.getMediaPlayer().getMediaPlayerState().toString().equalsIgnoreCase("libvlc_Ended")) { System.out.println("It's being played"); estado = mpu.getMediaPlayer().getMediaPlayerState(); }
但是那些台词让我的视频保持全屏....
我需要视频文件保持全屏显示。
最佳答案
如果您想(根据问题标题)检测视频何时播放完毕,您应该使用事件监听器 - 您不应使用查询媒体播放器状态的紧密循环,因此请使用:
mpu.getMediaPlayer().addMediaPlayerEventListener(new MediaPlayerEventAdapter() {
@Override
public void finished(MediaPlayer mediaPlayer) {
// Code to execute here when media player finished playing...
}
});
如果您想在第一个视频播放完毕后播放另一个媒体文件(在您的情况下是音频文件),那么您可能会考虑使用 EmbeddedMediaListPlayerComponent,它将负责为您播放播放列表。
使用 EmbeddedMediaListPlayerComponent 只是一种可能适合您的不同方法,但使用事件监听器来管理您自己的播放列表也没有错。
您问题的其余部分询问全屏行为。
到目前为止,您发布的代码中没有任何内容会导致媒体播放器退出全屏模式,因此您没有发布的代码中的其他内容出错了。
您可能需要发布更多代码来展示您是如何实现全屏的——特别是您到目前为止还没有展示您是如何将媒体播放器嵌入到您的应用程序中以及您是如何精确地进入全屏模式的。
vlcj 测试源中还有许多示例,这些示例展示了您应该查看的所有平台上的播放列表、事件和全屏。
关于java - vlcj 媒体播放器 : how to detect when video has finished playing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26909772/