gpt4 book ai didi

java - 使用 JavaFX 播放 Youtube 视频

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:33:30 25 4
gpt4 key购买 nike

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

}

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

谢谢。

最佳答案

2021 年 10 月更新

我使用 JavaFX 17 再次尝试了这个解决方案,它对我来说工作得很好,六年后还是不错的。

请注意,原始示例中的视频不再托管在 YouTube 上,但无论如何您都希望播放其他视频。

为此,只需将 url utUPth77L_o 的视频 ID 部分替换为您的视频 ID(您可以在 YouTube 中播放时在 url 中看到)。

2021 年有效的示例网址:

watch 链接的视频显示完整的 YouTube 网站,embed 链接的视频只显示视频的 YouTube 播放器。

YouTube 确实强制某些视频在其网站上显示,而不是使用嵌入链接,因此即使视频可以通过观看 URL 在 YouTube 上观看,嵌入链接并不总是有效,但观看链接应该对于这种情况,在 WebView 中工作正常。

2015 年 12 月 4 日更新

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

背景

有关在 JavaFX 中播放视频的一般信息位于我的回答中:Any simple (and up to date) Java frameworks for embedding movies .这个答案只涉及嵌入 YouTube 视频,因为这似乎是提问者感兴趣的内容。

解决方案

如果您将 URL 提供给 WebView,JavaFX 可以使用 YouTube 视频 URL 播放 YouTube 视频。而不是 MediaPlayer .

注意事项

如果您只需要 YouTube 媒体播放器而不是整个相关的 YouTube 页面,请在 URL 中使用 /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();
}
}

关于java - 使用 JavaFX 播放 Youtube 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18758041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com