使用JavaFX播放Youtube视频

xxl*_*ali 8 java javafx

我正在尝试使用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();
}

}
Run Code Online (Sandbox Code Playgroud)

窗口打开但视频无法播放,也不例外.有什么问题,我该如何解决?

谢谢.

jew*_*sea 15

2015年12月4日更新

某些版本的JavaFX 8无法播放YouTube视频内容.目前,例如,Java 8u66无法播放youtube视频内容,但Java 8u72早期访问版本可以.

背景

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

如果您将URL提供给WebView而不是MediaPlayer,则JavaFX可以使用YouTube视频URL播放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();
  }    
}
Run Code Online (Sandbox Code Playgroud)