为什么JavaFXWebView不允许在视频上使用全屏模式
描述 作为一个例子,我给出了为什么JavaFXWebView不允许在视频上使用全屏模式,java,video,javafx,webview,youtube,Java,Video,Javafx,Webview,Youtube,描述 作为一个例子,我给出了www.youtube.com,它允许你观看任何类型的视频。下面是使用javafxwebview显示网站的最低代码 问题是: 1) 不允许在任何视频上全屏显示 2) 即使视频支持,也无法进行全高清 问题: 为什么会发生这种情况?我已经用最新的Java8更新131和Java9更新171尝试了这两种方法 代码: 不能全高清 Youtube仅支持Chrome/IE/Safari/Firefox某些版本的高质量视频。(我用JDK8编译了您的程序,它支持高达720p。)单
www.youtube.com
,它允许你观看任何类型的视频。下面是使用javafxwebview
显示网站的最低代码
问题是:
- 1) 不允许在任何视频上全屏显示
- 2) 即使视频支持,也无法进行全高清
Java8更新131
和Java9更新171尝试了这两种方法
代码:
- 不能全高清
Youtube仅支持Chrome/IE/Safari/Firefox某些版本的高质量视频。(我用JDK8编译了您的程序,它支持高达720p。)单击“质量”->“缺少选项”可以找到以下详细信息
下面是一些浏览器和操作系统组合,它们支持
YouTube的高质量视频格式:
谷歌浏览器(所有操作系统)
Windows 8.1或更新版本上的Internet Explorer或Edge
Mac OS X 10.10或更新版本上的Safari
Windows 7或更高版本和Mac OS X 10.10或更高版本上的Firefox
- 无法全屏显示
由于JavaFXWebView自身的局限性,它似乎不支持全屏模式。在这里,您可以找到更多的解释:
- 不能全高清
Youtube仅支持Chrome/IE/Safari/Firefox某些版本的高质量视频。(我用JDK8编译了您的程序,它支持高达720p。)单击“质量”->“缺少选项”可以找到以下详细信息
下面是一些浏览器和操作系统组合,它们支持
YouTube的高质量视频格式:
谷歌浏览器(所有操作系统)
Windows 8.1或更新版本上的Internet Explorer或Edge
Mac OS X 10.10或更新版本上的Safari
Windows 7或更高版本和Mac OS X 10.10或更高版本上的Firefox
- 无法全屏显示
由于JavaFXWebView自身的局限性,它似乎不支持全屏模式。在这里,您可以找到更多的解释:
Hm,甚至Java 9都不能解决这个问题,我还有一个问题,如果你知道的话,我不会把它单独提出来
有没有办法设置WebEngine的历史记录?
例如,默认情况下,我试图在WebEngine
历史记录中添加一些条目,但可观察列表是不可修改的,我得到了错误。@GOXR3PLUS我没有看到自8u131(新webkit版本)以来的重大更改,所以可能没有。关于设置WebEngine历史记录,我从源代码()中发现,您可以通过反射获取第151行中的“list”对象并更改其内容。感谢您的回答:)反射正在扼杀Java 9中的应用程序。嗯,即使Java 9也无法解决此问题,我还有一个问题,如果你知道的话,我不会把它单独提出来有没有办法设置WebEngine的历史记录?
例如,默认情况下,我试图在WebEngine
历史记录中添加一些条目,但可观察列表是不可修改的,我得到了错误。@GOXR3PLUS我没有看到自8u131(新webkit版本)以来的重大更改,所以可能没有。关于设置WebEngine历史记录,我从源代码()中发现,您可以通过反射获取第151行中的“list”对象并更改其内容。感谢您的回答:)反射正在扼杀Java 9中的应用程序。
import javafx.application.Application;
import javafx.application.Platform;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.scene.paint.Color;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class WebViewSample extends Application {
private Scene scene;
@Override
public void start(Stage stage) {
// create scene
stage.setTitle("Web View");
scene = new Scene(new Browser(),Color.BLACK);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
class Browser extends BorderPane {
final WebView browser = new WebView();
final WebEngine webEngine = browser.getEngine();
public Browser() {
//add components
setCenter(browser);
// load the home page
webEngine.load("https://www.youtube.com");
}
// JavaScript interface object
public class JavaApp {
public void exit() {
Platform.exit();
}
}
}