使用JavaFX播放Youtubevideo

我正在尝试使用javaFX从youtube播放video。 这是我的代码

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(); } } 

窗口打开但video无法播放,也不例外。 有什么问题,如何解决它。

谢谢。

2015年12月4日更新

某些版本的JavaFX 8无法播放YouTubevideo内容。 目前,例如,Java 8u66无法播放youtubevideo内容,但Java 8u72早期访问版本可以。

背景

有关在JavaFX中播放video的一般信息,请参阅我的答案: 用于嵌入电影的任何简单(和最新)Java框架 。 这个答案只涉及嵌入YouTubevideo,因为这似乎是问题提供者感兴趣的内容。

如果您将URL提供给WebView而不是MediaPlayer,则JavaFX可以使用YouTubevideoURL播放YouTubevideo。

注意事项

如果您只想要YouTube媒体播放器而不是整个相关的YouTube页面,请使用/embed位置而不是URL中的/watch位置。

只能嵌入一些video。 例如,您无法嵌入Katy Perryvideo,因为YouTube会以嵌入格式阻止其分发(而是告诉您在YouTube网站上观看video,而该video仅通过YouTube Flash播放器提供)。

只有YouTube允许在HTML5播放器中播放的video才能在JavaFX中播放。 这是YouTubevideo的绝大部分比例。 仅在YouTube的Flash播放器中播放的YouTubevideo无法在JavaFX中播放。

样品申请

下面的JavaFX应用程序为一块水果播放YouTubevideo广告。

水果

 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(); } } 

JavaFX无法使用videourl播放youtubevideo。 您需要指定video的文件,而不仅仅是随机的YouTube链接。 试试这个URL: http : //download.oracle.com/otndocs/products/javafx/oow2010-2.flv你的代码工作正常