java - vlcj 媒体播放器 : how to detect when video has finished playing

标签 java video media-player libvlc vlcj

我正在播放视频文件(全屏),我希望在视频播放完毕后播放音频文件。

事情是:

  • 我能够全屏播放视频文件;
  • 我能够检测到视频文件何时播放完毕:

    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/

相关文章:

java - 使用 JAVA 从类生成 XML

java - 当我输入 double 时,nextDouble() 抛出一个 InputMismatchException

html - 链接到其他页面进行播放的视频缩略图

android - 如何在Android上进行录音并进行音频和视频时间同步

安卓锁屏和键盘控制

java - 动态地将自定义功能添加到服务/服务中介

java - 从xml文件中获取long值

jQuery - 检测 <video> onEnded

java - 如何在Android中使用媒体播放器?

java - Android MediaPlayer 行为(事件顺序保证)