2012-01-17 19 views
3

WebViewコンポーネントでWebページをロードする単純なjavaFXアプリケーションがあります。javafxアプリケーションでのHTML5ビデオタグの使用

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>タグ内のテキストが出力されないと仮定します。

誰かが私が間違っていることについていくつかの光を当てることができますか?

+0

異なるコーデックで第2のソースを提供してください。おそらく、使用されているコーデックはサポートされていません。 –

+0

私はいくつかのビデオを試しましたが、すべてのタイプが同じです。私は1つを試みるが、私はそのコーデックの問題を確信していない。 –

答えて

7

コーデックの問題が発生しています。

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(); 
    } 
} 
+0

その説明をありがとう! –

+0

次に、JavaFXが実際にHTML5をサポートしていないと言っても過言ではないと思います。 HTML5自体がJavaFXがサポートできるコーデックではなく、OSをサポートしている必要があります。幸いにも、JavaFX 2.1のように、H.264(MP4)ビデオがサポートされているので、これでは苦痛を軽減します。 :) – Glstunna

+0

ビデオタグでループ属性を使用できますか?私はループの属性を使用するとループしません:( – Someone13

関連する問題