Автоматически закрывать проигрыватель VLC после завершения видео?

Поэтому я использую VLCJ и проигрыватель VLC для java для воспроизведения видео при запуске моей программы. Проблема в том, что видеоплеер закрывается только тогда, когда пользователь нажимает кнопку «x». Есть ли способ закрыть его автоматически, когда видео заканчивается?

Спасибо!

Если это поможет, вот мой код:

//////Main class:

package switchAndAnim;

import java.io.File;

import javax.swing.JFileChooser;

public class Start {

    public static void main(String[] args)
    {
        //location of vlc files, media file
        new MediaPlayer("vlc-2.0.2", "ryankilp2.wmv").run();
    }

}

///////MediaPlayer class:
package switchAndAnim;
import javax.swing.JFrame;
import com.sun.jna.NativeLibrary;
import uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent;
import uk.co.caprica.vlcj.runtime.RuntimeUtil;

public class MediaPlayer {
private JFrame ourFrame = new JFrame();

    private EmbeddedMediaPlayerComponent ourMediaPlayer;

    private String mediaPath = "";

    MediaPlayer(String vlcPath,String mediaURL)
    {
        this.mediaPath = mediaURL;

        NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), vlcPath);

        ourMediaPlayer = new EmbeddedMediaPlayerComponent();

        ourFrame.setContentPane(ourMediaPlayer);

        ourFrame.setSize(640,480);

        ourFrame.setVisible(true);

        ourFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }

    public void run()
    {
        ourMediaPlayer.getMediaPlayer().playMedia(mediaPath);
    }

}

person user3696172    schedule 02.06.2014    source источник


Ответы (1)


В медиаплеере есть все виды событий, которые вы можете прослушивать, одно из них — событие «завершение», которое срабатывает, когда достигается конец видео.

ourMediaPlayer = new EmbeddedMediaPlayerComponent() {
    public void finished(MediaPlayer mediaPlayer) {
        ourMediaPlayer.release(); // In practice, this line is optional
        System.exit(0);
    }
}

Я использовал System.exit(), так как ваш вопрос задал EXIT_ON_CLOSE, но в равной степени вы можете скрыть или удалить фрейм вместо этого в зависимости от вашего варианта использования.

person caprica    schedule 02.06.2014