我正在尝试使用javaFX从youtube播放视频。这是我的代码
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("Media");
Group root = new Group();
Media media = new Media("http://www.youtube.com/watch?v=k0BWlvnBmIE");
MediaPlayer mediaPlayer = new MediaPlayer(media);
mediaPlayer.play();
MediaView mediaView = new MediaView(mediaPlayer);
root.getChildren().add(mediaView);
Scene scene = SceneBuilder.create().width(500).height(500).root(root)
.fill(Color.WHITE).build();
primaryStage.setScene(scene);
primaryStage.show();
}
}
窗口打开但视频无法播放,也没有异常。有什么问题,我该如何解决。
感谢。
答案 0 :(得分:15)
2015年12月4日更新
某些版本的JavaFX 8无法播放YouTube视频内容。目前,例如,Java 8u66无法播放youtube视频内容,但Java 8u72早期访问版本可以。
<强>背景强>
有关在JavaFX中播放视频的一般信息位于我对Any simple (and up to date) Java frameworks for embedding movies的回答中。这个答案只涉及嵌入YouTube视频,因为这似乎是提问者感兴趣的内容。
<强>解决方案强>
如果您提供的网址为WebView而不是MediaPlayer,则JavaFX可以使用YouTube视频网址播放YouTube视频。
<强>考虑强>
如果您只想要YouTube媒体播放器,而不是整个相关的YouTube网页,请使用/embed
位置,而不是网址中的/watch
位置。
只能嵌入一些视频。例如,您无法嵌入Katy Perry视频,因为YouTube会以嵌入格式阻止其发布(而是告诉您在YouTube网站上观看视频,而该视频仅通过YouTube Flash播放器提供)。
只有YouTube允许在其HTML5播放器中播放的视频才能在JavaFX中播放。这是YouTube视频的绝大部分比例。仅在YouTube的Flash播放器中播放的YouTube视频无法在JavaFX中播放。
示例应用
下面的JavaFX应用程序播放YouTube视频广告。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class VideoPlayer extends Application {
public static void main(String[] args) { launch(args); }
@Override public void start(Stage stage) throws Exception {
WebView webview = new WebView();
webview.getEngine().load(
"http://www.youtube.com/embed/utUPth77L_o?autoplay=1"
);
webview.setPrefSize(640, 390);
stage.setScene(new Scene(webview));
stage.show();
}
}
答案 1 :(得分:2)
JavaFX无法使用视频网址播放youtube视频。您需要指定视频文件,而不仅仅是随机的YouTube链接。 试试这个网址:http://download.oracle.com/otndocs/products/javafx/oow2010-2.flv 你的代码工作正常