【发布时间】:2016-05-18 09:56:13
【问题描述】:
我正在编写一个教育软件,并希望用户能够从我的 JavaFX GUI 中的列表中选择要观看的视频。
我创建了一个 mediaPlayer 类,其中包含一个运行代码并正确显示视频的 main 方法,
但是我的下一个任务是实例化 mediaPlayer 类,并将要观看的视频的 URL 作为参数传递。
我尝试编写MediaPlayerTest,从而实例化mediaPlayer,将URL 作为参数传递给它,然后调用start() 方法,
但是在运行我的测试程序类时出现以下错误:
Exception in thread "main" java.lang.ExceptionInInitializerError
at javafx.scene.web.WebView.<init>(WebView.java:271)
at Media.mediaPlayer.start(mediaPlayer.java:34)
at Media.MediaPlayerTest.main(MediaPlayerTest.java:23)
Caused by: java.lang.RuntimeException: Internal graphics not initialized yet
at com.sun.glass.ui.Screen.getScreens(Screen.java:70)
at com.sun.javafx.webkit.prism.PrismGraphicsManager.<init>(PrismGraphicsManager.java:43)
at javafx.scene.web.WebEngine.<clinit>(WebEngine.java:290)
... 3 more
您可以在下面找到测试器类和mediaPlayer 类代码:
public class mediaPlayer extends Application {
// The url of the video to be played
String url = "https://www.youtube.com/embed/CySfQY_lgr4";
public mediaPlayer(String url) {
this.url = url;
}
@Override
public void start(Stage stage) throws Exception {
WebView webview = new WebView();
webview.getEngine().load(url);
webview.setPrefSize(640, 390);
stage.setScene(new Scene(webview));
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
还有MediaPlayerTest类:
public class MediaPlayerTest {
public static void main (String[] args) {
try {
mediaPlayer mp = new mediaPlayer("https://www.youtube.com/embed/CySfQY_lgr4");
mp.start(null);
} catch (Exception ex) {
Logger.getLogger(MediaPlayerTest.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
对于解决此问题的任何帮助将不胜感激。
【问题讨论】:
标签: java javafx media-player