java - 使用 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 中加载页面。
解决方案
如评论中所述,您可以尝试将 JavaFX 更新到较新的版本。如果仍然无法正常工作,那么您可以尝试一些基于 Chromium 的替代方案,例如 JxBrowser 或 JCEF,但是第一个非常昂贵,而后者有点困难在 JavaFX 中实现
推荐阅读
- python - Docker - 无法将容器内生成的文件复制出来
- html - 将更新上传到 cPanel 时 Html 元素未注册
- javascript - 在不插入另一个对象的情况下更新 useState
- python - 尽管在层次结构中处于同一级别,但无法导入我的 python 模块
- python - 为什么我不能在 Tkinter 中实例化一个新的 Frame 对象?
- javascript - Javascript - 如何限制 contentEditable div 中的字符?
- python - Sprite 不显示 pygame
- jquery - 如何获取 JQuery 对象的元素类型
- javascript - 计算的重复赋值
- html - IBM Watson Assistant Web Chat 在浏览我的网站时未保持会话状态