使用JavaFX8观看youtube直播

使用JavaFX8观看youtube直播,java,javafx,youtube,Java,Javafx,Youtube,我正在尝试使用JavaFX8播放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; impor

我正在尝试使用JavaFX8播放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);
}
packagemain;
导入javafx.application.application;
导入javafx.stage.stage;
导入javafx.scene.scene;
导入javafx.scene.layout.StackPane;
导入javafx.scene.media.media;
导入javafx.scene.media.MediaPlayer;
导入javafx.scene.media.MediaView;
导入javafx.scene.web.WebView;
公共类主扩展应用程序{
@凌驾
公共无效开始(阶段primaryStage){
试一试{
WebView embeddedWV=新WebView();
embeddedWV.getEngine().loadContent(
“”和“text/html”);
嵌入式WV.setPrefSize(640400);
root.getChildren().add(embeddedWV);
初级阶段。场景(场景);
primaryStage.show();
}捕获(例外e){
e、 printStackTrace();
}
}
公共静态void main(字符串[]args){
发射(args);
}
}


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

如评论中所述,您可以尝试将JavaFX更新到更新的版本
如果它仍然不起作用,那么您可以尝试一些替代方案,如基于Chromium的JxBrowser或JCEF,但是第一个非常昂贵,后者在JavaFX中有点难以实现,MediaPlayer无法加载Youtube视频。它只能在文件系统中加载普通视频。抱怨没有更新和仍然使用Java8本身不是矛盾吗?再过几天,我们将正式访问JavaFX15。看看这个老问题:@mipa我这么说是因为我最近尝试将它与Google Oauth2一起使用,但效果不太好。然后我查看了GitHub,在jfx14分支中,WebEngine的最新提交是两年前完成的。不过他们在jfx15上做了一些更新。我个人认为JavaFX的WebEngine是一个玩具,它不能与基于chromium的浏览器相比。但你是对的,我会修改我的答案