使用JavaFX播放Youtube视频

时间:2013-09-12 07:27:15

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

}

窗口打开但视频无法播放,也没有异常。有什么问题,我该如何解决。

感谢。

2 个答案:

答案 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视频广告。

fruit

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 你的代码工作正常