Закрытие видео, когда оно заканчивается с помощью проигрывателя VLCJ?

Я использую VLCJ для воспроизведения видео при запуске своей программы. Есть ли способ закрыть его автоматически, когда видео заканчивается? Я бы не стал ключевым слушателем, чтобы закрыть видео

Спасибо!

Код:

String file = "Estopa.mp4";

    public Test(){
        f.setLocation(100,100);
        f.setSize(alto,ancho);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);

        c.setBackground(Color.black);   
        p.setLayout(new BorderLayout());    
        p.add(c);
        f.add(p);

        // Read video file 
        // load native library
        NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(),"C:/Program Files/VideoLAN/VLC");
        Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);
        // initialize the media player
        MediaPlayerFactory mpf = new MediaPlayerFactory();
        // control all the interactions with the user
        EmbeddedMediaPlayer emp = mpf.newEmbeddedMediaPlayer(new Win32FullScreenStrategy(f));
        emp.setVideoSurface(mpf.newVideoSurface(c));
        // full screen
        emp.toggleFullScreen();             
        //hide the cursor
        emp.setEnableMouseInputHandling(true);
        //able keyboard
        emp.setEnableKeyInputHandling(true);        
        //prepare file to read
        emp.prepareMedia(file);
        // read the file
        emp.play();



    }

person toribiosilva    schedule 09.09.2016    source источник


Ответы (1)


Добавьте MediaPlayerEventListener в медиаплеер.

В реализации слушателя добавьте любой код в метод finished.

Что-то вроде этого:

emp.addMediaPlayerEventListener(new MediaPlayerEventAdapter() {
    @Override
    public void finished(MediaPlayer mediaPlayer) {
        System.exit(0);
    }
});

Вы также можете добавить реализацию для обратного вызова error, так как вы не получите событие finished в случае ошибки.

Обратите внимание, что MediaPlayerEventAdapter — это пустая реализация MediaPlayerEventListener.

person caprica    schedule 09.09.2016