问题背景:使用JavaFX的MediaPlayer
加载和播放时,第一次能够成功加载,第2-n次报异常,如下
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at com.sun.media.jfxmediaimpl.platform.gstreamer.GSTMediaPlayer.playerSetBalance(GSTMediaPlayer.java:242)
at com.sun.media.jfxmediaimpl.NativeMediaPlayer.setBalance(NativeMediaPlayer.java:1157)
at javafx.scene.media.MediaPlayer.init(MediaPlayer.java:481)
at javafx.scene.media.MediaPlayer.<init>(MediaPlayer.java:421)
这是因为当你撤走所有的FX组件时,JavaFX关闭了工具包,只需要加载之前加上下面的代码就可以解决
Platform.setImplicitExit(false);
这样就可以使JavaFX保持运行而不退出,不会导致这种组件加载失败的问题了,更多请参阅https://stackoverflow.com/questions/29885065/java-fx-null-pointer-exception-when-using-media-player-at-javafx-scene-media-med#