Воспроизведение Youtube-LiveStreams с JavaFX 8
У меня вопрос, можно ли воспроизводить Youtube-Livestream с использованием JDK 8u102. Используя WebView, можно легко воспроизводить Youtube-видео (VoD). Пример:
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);
}
}
Но такой подход не работает для Live-Streams, таких как https://youtu.be/opHkchLbYR4. В сообщении об ошибке указывается, что мой "браузер" / приложение не поддерживает WebM VP8, Media Source Extensions, MSE & H.264 и MSE & WebM VP9. Подход, который работал (но имел ужасную производительность), был описан здесь, но это подход для Swing, а не JavaFX8. Это все еще подтверждение концепции, которая показывает, что можно воспроизводить потоки внутри Java-приложений. Я также читал это, но это 1. для Android/IOS и 2. относится только к API Youtube-Life, который на самом деле не отвечает на вопрос и кажется немного излишним для того, что я пытаюсь выполнить.
Мой вопрос: возможно ли как-то воспроизводить прямые трансляции, транслируемые Youtube, в приложении JavaFX 8? Если это изначально невозможно, существуют ли внешние библиотеки для достижения такой цели?
1 ответ
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();
}