使用JavaFX 8播放Youtube-LiveStreams

时间:2016-10-10 00:07:05

标签: java webview youtube javafx-8 live-streaming

我的问题是,是否可以使用JDK 8u102播放Youtube-Livestreams。使用WebView,可以轻松播放Youtube-Videos(视频点播)。 例如:

package application;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.web.WebView;
import javafx.stage.Stage;


public class Main extends Application {
    @Override
    public void start(Stage primaryStage) {
        try {
            WebView embeddedWV = new WebView();
            embeddedWV.getEngine().load(
            "https://www.youtube.com/embed/oyA8odjCzZ4"
            );
            embeddedWV.setPrefSize(640, 400);
            Scene scene = new Scene(embeddedWV);
            primaryStage.setScene(scene);
            primaryStage.show();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

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

但是这种方法不适用于https://youtu.be/opHkchLbYR4等实时流。错误表示WebM VP8,媒体源扩展,MSE& H.264和MSE&我的“浏览器”/应用程序不支持WebM VP9。 描述了一种有效(但性能很糟糕)的方法here,但这是Swing的一种方法,而不是JavaFX8。它仍然是一个概念证明,它表明可以在Java-Applications中播放Streams。我也读过this,但它是1.对于Android / IOS和2.仅指Youtube-Life API,它实际上没有回答这个问题,对我试图完成的事情看起来有点过分。

我的问题是:在某种程度上可以播放由Youtube播放的直播节目中的JavaFX 8应用吗?如果它本身不可能,是否有外部库来实现这一目标?

1 个答案:

答案 0 :(得分:0)

public void start(Stage primaryStage) {
        StackPane root = new StackPane();
        Scene scene = new Scene(root, 640, 400);
        primaryStage.setScene(scene);
        WebView embeddedWV = new WebView();
        embeddedWV.getEngine().load(
       "https://www.youtube.com/embed/oyA8odjCzZ4"
            );
            embeddedWV.setPrefSize(640, 400);
            root.getChildren().add(embeddedWV);

            primaryStage.setScene(scene);
            primaryStage.show();
    }