Я прошу прощения, если я пропустил ответ на этот вопрос в другом месте, но я искал здесь, в Oracle и в Интернете и не нашел поддержки для моей проблемы.
Краткая история. Я написал медиаплеер на основе JavaFX 2.2.7, который, как было доказано, воспроизводит поддерживаемые локальные и удаленные видеофайлы, но не воспроизводит прямые потоки HTTP. Пробовал SSCCE непосредственно из Oracle, обновился до JavaFX2.2.21, а также попытался запустить Java 7 JRE. Прямая трансляция HTTP не работает.
Предыстория:
Я написал медиаплеер на основе JavaFX 2.2.7, встроенный в приложение Java 6 Swing (используя JPanels и т. д.). Я могу воспроизводить локальный файл поддерживаемого формата (например, Sintel trailor mp4 h264), а также могу воспроизводить удаленные файлы поддерживаемого формата (например, файл FLV, расположенный непосредственно с oracle.com).
Проблема: когда я пытаюсь использовать "HTTP Live Stream" (HLS), ничего не воспроизводится. Назначение URL-адреса HTTP Live Streaming объекту javafx.scene.media.Media, похоже, не работает. В итоге у меня пустой плеер, но исключений и ошибок нет.
Очевидно, я могу успешно создать экземпляр объекта Media из URL-адреса HLS без ошибок:
private static final String MEDIA_URL = "http://download.oracle.com/otndocs/products/javafx/JavaRap/prog_index.m3u8";
Media media = new Media(MEDIA_URL);
MediaException ex = media.getError();
if( ex != null ) {
System.out.println("Media Error" + ex.getMessage());
} else {
System.out.println("No Media Error");
}
Вывод консоли программы: "Нет ошибки носителя"
Шаги по устранению неполадок, которые я пробовал:
Я подумал, что что-то не так с кодом моего плеера, поэтому я перешел на страницу http://download.oracle.com/otndocs/products/javafx/2/samples/Ensemble/index.html#SAMPLES/Media/Streaming.%20Media%20Player и скопировал источник напрямую и запустил его... К сожалению, тот же результат. «Ensemble Streaming Media Player» запускается, но просто показывает пустое видеоокно. Элементы управления мультимедиа и ползунки доступны, но видео не воспроизводится. (Важно отметить, что плеер работает в моем веб-браузере, а рэп-видео ужасное.)
Основываясь на примечаниях к выпуску для Java 2.2.7, у меня сложилось впечатление, что HLS поддерживается. Опасаясь ошибиться в своих предположениях, я попытался перейти на автономную версию JavaFX 2.2.21, но это не решило проблему. Результат точно такой же. Без исключений, без ошибок и без видео.
Я не могу перейти на Java 7 (я твердо придерживаюсь Java 1.6.0.32 из-за ограничений проекта), но ради аргумента я попытался запустить код медиаплеера Ensemble на Java 7, и результат тот же.
Любая помощь, которую кто-то может предоставить, будет принята с благодарностью.
(Для SSCCE вы можете просмотреть код, который я пытался использовать дословно, по ссылке Oracle Streaming Media Player выше.)
Заранее спасибо всем, кто может помочь!