java - 在 javafx 应用程序中使用 HTML5 视频标签

标签 java html webview javafx javafx-2

我有一个简单的 javaFX 应用程序,它在 WebView 中加载网页组件。

StackPane root = new StackPane();
Scene scene = new Scene(root, 80, 20);
browser = new WebView();
webEngine = browser.getEngine();

webEngine.load("test.html");
root.getChildren().add(browser);
jfxPanel.setScene(scene);

这很好用 test.html看得到。问题出在页面上的 HTML5 视频上。

<video width="320" height="240" controls="controls">
    <source src="http://upload.wikimedia.org/wikipedia/commons/7/79/Big_Buck_Bunny_small.ogv" type="video/ogg" />
    Your browser does not support the video tag.
</video>

该页面可在 Chrome 16 中运行,但在 java 应用程序中您只能看到控件,点击播放没有任何作用。我假设 WebEngine 允许 HTML5 作为控件显示和 <video></video> 中的文本不输出标签。

任何人都可以阐明我做错了什么吗?

最佳答案

您遇到编解码器问题。

来自JavaFX FAQ question 7 , JavaFX(自 2.0.2 起)仅支持使用 on2 vp6 codec 编码的 flv 视频.

计划在未来的版本中提供额外的编解码器支持。相关的功能请求是 RT-18296 (需要登录,但任何人都可以注册以查看 JavaFX 问题数据库并创建功能请求、为问题投票或发表评论)。

一个相关的 StackOverflow 问题提供了一个 summary of considerations for playing video in JavaFX 2.1 (包括 JavaFX WebView)。

要在 JavaFX WebEngine 中演示 html5 视频标签和视频播放,请运行以下代码,该代码播放 Oracle 提供的 vp6 编码视频。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class WebViewVideo extends Application {
  public static void main(String[] args) { Application.launch(args); }
  @Override public void start(Stage primaryStage) {
    WebView root = new WebView();
    root.getEngine().loadContent(
      "<video width='320' height='240'controls='controls'>" +
        "<source src='http://download.oracle.com/otndocs/products/javafx/oow2010-2.flv'/>" + 
        "Your browser does not support the video tag." + 
      "</video>");
    primaryStage.setScene(new Scene(root, 340, 260));
    primaryStage.show();
  }
}

关于java - 在 javafx 应用程序中使用 HTML5 视频标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8899404/

相关文章:

java - 关于在Eclipse中添加库

java - 加特林与 GitLab CI/CD

javascript - 如何在 URL 中使用 # 显示和隐藏一些 html 元素

javascript - 如何在 selenium webdriver 中自动输入类型 ="color"?

android - Android WebView 中的套接字

javascript - 通过 Ajax 将 Javascript 中的自定义数组发布到 Spring Rest 服务

java - 在 Android 的 Activity 中使用服务

html - 在 HTML 中生成链接

java - 从 OnClickListener Android 打开 URL

android - @Android display/res/viewable 在 WebView