2016-09-09 92 views
0

我使用VLCJ在运行我的程序时播放视频。视频结束时有什么方法可以自动关闭它吗?我不会让Keylistener关闭视频用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(); 



    } 

回答

1

添加MediaPlayerEventListener到媒体播放器。

在你的监听器实现中,在finished方法中添加你想要的任何代码。

事情是这样的:

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

你也可能要添加一个实现了error回调,因为如果有一个错误,你不会得到一个finished事件。

请注意MediaPlayerEventAdapter是一个MediaPlayerEventListener的空实现。