首页 > 解决方案 > 使用 javafx 8 观看 youtube 直播

问题描述

我正在尝试使用 JavaFX 8 播放 youtube 直播。

package main;

import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.scene.web.WebView;


public class Main extends Application {
    @Override
    public void start(Stage primaryStage) {
    try {
        WebView embeddedWV = new WebView();
        embeddedWV.getEngine().loadContent(
                "<iframe width=\"1280\" height=\"720\" src=\"https://www.youtube.com/embed/5qap5aO4i9A\" "
                + "frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\""
                + " allowfullscreen></iframe>","text/html");
            embeddedWV.setPrefSize(640, 400);
            root.getChildren().add(embeddedWV);

            primaryStage.setScene(scene);
            primaryStage.show();
    } catch(Exception e) {
        e.printStackTrace();
    }
}

public static void main(String[] args) {
    launch(args);
}

}

嵌入的流加载正常,但是当我点击播放时,youtube 告诉我我的“浏览器”不支持任何视频格式。我尝试使用 webview 和 mediaplayer,但我什至无法在 mediaplayer 中加载页面。

标签: javajavafxyoutube

解决方案


如评论中所述,您可以尝试将 JavaFX 更新到较新的版本。如果仍然无法正常工作,那么您可以尝试一些基于 Chromium 的替代方案,例如 JxBrowser 或 JCEF,但是第一个非常昂贵,而后者有点困难在 JavaFX 中实现


推荐阅读