Ash*_*nko 3 java html5 javafx webview 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);
Run Code Online (Sandbox Code Playgroud)
这很好,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>
Run Code Online (Sandbox Code Playgroud)
该页面适用于Chrome 16,但在java应用程序中,您只能看到控件,单击"播放"不会执行任何操作.我假设WebEngine允许HTML5作为控件出现,并且<video></video>不输出标签内的文本.
有人能说清楚我做错了吗?
您遇到了编解码器问题.
从JavaFX FAQ问题7开始,JavaFX(从2.0.2开始)仅支持使用on2 vp6编解码器编码的flv视频.
为将来的版本安排了额外的编解码器支持.相关的功能请求是RT-18296(需要登录,但任何人都可以注册查看JavaFX问题数据库并创建功能请求,投票发布问题或发表评论).
相关的StackOverflow问题提供了在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();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5341 次 |
| 最近记录: |