在javafx应用程序中使用HTML5视频标记
我有一个简单的
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(); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |