我使用Java来播放视频剪辑,其中文件名存储在MySQL数据库中。一切都工作正常,但每当视频出现时,它总是需要大约5秒钟才能开始播放,屏幕一开始是灰色的。下面是我的应用程序中的一段代码:
String[] s = new String[] {"C:\Program Files\VideoLAN\VLC\vlc.exe", "C:\Users\Downloads\" + filename + ".mp4"};
try {
Process process = runtime.exec(s);
Timer timer = new Timer();
timer.schedule( new TimerTask(){
public void run() {
System.out.println("Video exit");
process.destroy();
Start();
}
}, delay);
Filename是从MySQL数据库检索到的视频文件的名称,delay是每个视频的长度。在视频结束后,我通过调用process.destroy()退出当前正在播放的视频,并通过调用Start()进入下一个视频。有什么更有效的方法呢?通过更有效,我的意思是,有没有一种方法可以在当前视频播放完成后立即调用process.destroy(),因此不需要处理视频持续时间变量。最后,我想知道如何使用Java以最有效的方式同时播放一个又一个视频。
您可以在应用程序中使用vlcj。参见:在JPanel中嵌入vlcj播放器和在JPanel中嵌入vlcj。您还可以为视频播放器添加一个监听器,这样您就可以对其进行编程,使其在当前播放的视频完成后自动播放下一个视频。我已经测试了排队视频文件,下一个视频开始播放之前的延迟非常短。使用vlcj,您的java视频应用程序可以像vlc一样强大。