Воспроизведение видео JavaFX WebEngine в Linux

1

В настоящее время у нас возникают проблемы, возникающие в WebViewer в JavaFX в нашей среде Linux Redhat 6. Используя JavaFX 2.2 и Java 1.7.0.51, мы имеем WebViewer, который идет на HTML-страницу с тегом видео в нем.

Он отлично работает на наших ящиках Windows, но в окне linux мы получаем следующее исключение:

Exception in thread "JavaFX Application Thread" java.lang.IllegalThreadStateException
    at java.lang.Thread.start(Thread.java:704)
    at com.sun.webpane.sg.prism.WCMediaPlayerImpl.prepareToPlay(WCMediaPlayerImpl.java:208)
    at com.sun.webpane.platform.graphics.WCMediaPlayer.fwkPrepareToPlay(WCMediaPlayer.java:290)
    at com.sun.webpane.platform.WebPage.twkProcessMouseEvent(Native Method)
    at com.sun.webpane.platform.WebPage.dispatchMouseEvent(WebPage.java:751)
    at javafx.scene.web.WebView.processMouseEvent(WebView.java:983)
    at javafx.scene.web.WebView.access$2600(WebView.java:81)
    at javafx.scene.web.WebView$14.handle(WebView.java:1136)
    at javafx.scene.web.WebView$14.handle(WebView.java:1134)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:64)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:217)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:170)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:38)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:37)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:53)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:33)
    at javafx.event.Event.fireEvent(Event.java:171)
    at javafx.scene.Scene$MouseHandler.process(Scene.java:3369)
    at javafx.scene.Scene$MouseHandler.process(Scene.java:3209)
    at javafx.scene.Scene$MouseHandler.access$1900(Scene.java:3164)
    at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1582)
    at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2267)
    at com.sun.javafx.tk.quantum.EmbeddedScene$2$1.run(EmbeddedScene.java:194)
    at com.sun.javafx.tk.quantum.EmbeddedScene$2$1.run(EmbeddedScene.java:176)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.tk.quantum.EmbeddedScene$2.run(EmbeddedScene.java:176)
    at com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:182)
    at com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:179)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:179)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:76)
    at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    at com.sun.glass.ui.gtk.GtkApplication$3$1.run(GtkApplication.java:89)
    at java.lang.Thread.run(Thread.java:744)

Я сформулирую очевидное, кажется, что поток, который генерируется из JavaFX, умирает, когда он пытается загрузить видео. Кто-нибудь еще сталкивался с подобными проблемами? Любые идеи о том, что попробовать? Мы попытались использовать очень конкретные версии кодеков H-264, но это не сработало. Любая идея о том, как вы все настроили среду linux/javafx для воспроизведения видео в JavaFX WebView, также будет полезна.

Кроме того, для уточнения приложения является Swing со встроенным JavaFX, однако он все еще встречается в чистой реализации JavaFX, а также немного отличается от Exception.

Спасибо, Натан

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

Теги:
javafx
video
redhat
codec

1 ответ

1

Похоже, что у нас не было никаких правильных кодеков, встроенных в ОС, и что это была очень специфическая версия кодека. Хотя Redhat 6.5 не поддерживается конфигурацией, он по-прежнему работает так, как рекламируется в дистрибутиве. Кодеки, которые мы используем: libavcodec52 и libavformat52, как упоминалось здесь: http://www.oracle.com/technetwork/java/javafx/downloads/supportedconfigurations-1506746.html

Жаль, что исключение не дало объяснений тому, что действительно не так.

  • 0
    Спасибо за этот ответ! Если какой-либо пользователь Arch Linux ищет решение, проверьте это: bbs.archlinux.de/viewtopic.php?pid=311353#p311353

Ещё вопросы

Сообщество Overcoder
Наверх
Меню