2012-01-17 4 views
3

У меня есть простое приложение javaFX, которое загружает веб-страницу в компоненте WebView.Использование тегов HTML5 в приложении javafx

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

Попробуйте предоставить второй источник с разным кодеком. возможно, используемый кодек не поддерживается. –

+0

Я пробовал несколько видеороликов, всех разных типов, с тем же результатом. Я буду нести одну попытку, но я не уверен, что это проблема с кодеком. –

ответ

7

У вас возникла проблема с кодеком.

С JavaFX FAQ question 7 JavaFX (начиная с версии 2.0.2) поддерживает только FLV-видео, закодированные с использованием on2 vp6 codec.

Дополнительная поддержка кодеков запланирована на будущие версии. Соответствующий запрос функции - RT-18296 (требуется вход, но любой может зарегистрироваться для просмотра базы данных проблем JavaFX и создания запросов функций, голосовать за вопросы или оставлять комментарии).

Связанный с этим вопрос StackOverflow предоставляет summary of considerations for playing video in JavaFX 2.1 (включая JavaFX WebView).

Чтобы продемонстрировать видеотег и воспроизведение видео в html5 в JavaEX WebEngine, запустите следующий код, который воспроизводит поставляемое 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 могут/не могут поддерживать, но ОС. К счастью, как и в JavaFX 2.1, теперь есть поддержка видео H.264 (MP4), поэтому это делает вещи намного менее болезненными. :) – Glstunna

+0

Можете ли вы использовать атрибут loop в теге видео? Когда я использую атрибут loop, он не будет зацикливаться :( – Someone13

 Смежные вопросы

  • Нет связанных вопросов^_^