我想制作一个简单的Java应用程序来播放视频。我希望它特别播放mpeg4和mov格式。 JMF是我的开始,并且有一个很好的工作示例。但是,不支持mov或mpeg4格式。我看过Xuggler,但看不到使它工作的简单方法。 VLCJ似乎很容易-我下载了jar文件并将其附加到我的项目中(vlcj-2.1.0.jar,jna-3.4.0.jar,platform-3.4.0.jar,vlcj-2.1.0.jar))。我得到了示例代码并对其进行了修改(如下)。但是,当我运行代码时,出现了java.lang.NullPointerException异常。我试过调整文件名中斜杠的数量和斜率(向前和向后)。似乎没有任何作用。请你能帮忙吗???
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.JFileChooser;
import uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent;
import java.lang.Object;
import uk.co.caprica.vlcj.mrl.FileMrl;
import uk.co.caprica.vlcj.binding.LibVlc;
import uk.co.caprica.vlcj.runtime.RuntimeUtil;
import com.sun.jna.Native;
import com.sun.jna.NativeLibrary;
public class TestPlayer {
private final JFrame frame;
private EmbeddedMediaPlayerComponent mediaPlayer;
public static void loadLibs(){
NativeLibrary.addSearchPath(
RuntimeUtil.getLibVlcLibraryName(), "C:/Program Files/VideoLAN/VLC/"
);
Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);
}
public static void main(final String[] args){
loadLibs();
final String mrl = "file://C:/Test.mov";
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new TestPlayer().run(mrl);
}
});
}
public TestPlayer(){
frame = new JFrame("test VLCJ");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocation(100,100);
frame.setSize(600,400);
frame.setVisible(true);
}
private void run(String mrl){
System.out.println(mrl);
try{
mediaPlayer.getMediaPlayer().playMedia(mrl);
}catch(Exception e){
System.err.println(e.toString());
}
}
}
我在Windows 32位上使用VLC版本2.0.2和VLCJ 2.1.0源以及JDK 1.7。我希望这很简单...
最佳答案
似乎您正在使用mediaPlayer
而不进行初始化,因此在run()
中导致NullPointerException。
尝试在构造函数中对其进行初始化。
关于java - VLCJ NullPointer(我只想要一个简单的跨平台Java视频播放器),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11875136/