Spec-Zone .ru
спецификации, руководства, описания, API
JavaFX 2.2

Пакет javafx.scene.media

Обеспечивает набор классов для того, чтобы интегрировать аудио и видео в Java Приложения FX.

См.: Описание

Пакет javafx.scene.media Описание

Обеспечивает набор классов для того, чтобы интегрировать аудио и видео в Java Приложения FX. Основное использование для этого пакета является воспроизведением носителей. В пакете носителей есть три основных класса: Media, MediaPlayer, и MediaView.

Содержание

  1. Поддерживаемые Типы носителей
  2. Поддерживаемые Протоколы
  3. Поддерживаемые Теги Метаданных
  4. Игра Носителей в Java FX

Поддерживаемые Типы носителей

Java FX поддерживает много различных типов носителей. Тип носителей, как полагают, является комбинацией контейнерного формата и одних или более кодировок. В некоторых случаях контейнерный формат мог бы просто быть элементарным потоком, содержащим закодированные данные.

Поддерживаемые Типы Кодирования

Тип кодирования определяет, как выбранные аудиоданные или видеоданные сохранены. Обычно тип кодирования подразумевает определенный алгоритм сжатия. Следующая таблица показывает типы кодирования, поддерживаемые Java Носители FX.

КодированиеВвестиОписание
AACАудиоСжатие аудио Усовершенствованного кодирования звука
MP3Аудио Необработанный MPEG 1, 2, и 2.5 аудио; уровни I, II, и III; все поддерживаемые комбинации выборки частот и скоростей передачи.
PCMАудиоНесжатые, необработанные аудиосэмплы
H.264/AVCВидеоH.264/MPEG-4 Часть 10 / AVC (Усовершенствованное кодирование видео) сжатие видео
VP6ВидеоOn2 VP6 сжатие видео

Поддерживаемые Контейнерные Типы

Контейнерный тип определяет формат файла, используемый, чтобы сохранить закодированное аудио, видео, и другие данные носителей. Каждый контейнерный тип связывается с одним или более типами MIME, расширениями файла, и подписями файла (начальные байты в файле). Следующая таблица показывает комбинацию контейнера и кодирующих типов, поддерживаемых Java Носители FX.

КонтейнерОписаниеВидео Кодирование АудиокодированиеТип MIMEРасширение файла
AIFFАудио Формат файла ОбменаN/A PCMaudio/x-aiff.aif.aiff
FXM, FLVНосители FX, Видео FlashVP6 MP3video/x-javafx, video/x-flv.fxm.flv
HL (*)MP2T HTTP Живая (аудиовизуальная) Потоковая передачаH.264/AVC AACapplication/vnd.apple.mpegurl, audio/mpegurl.m3u8
HL (*)MP3 HTTP Живая Потоковая передача (только для аудио)N/A MP3application/vnd.apple.mpegurl, audio/mpegurl.m3u8
MP3MPEG 1, 2, 2.5 необработанных аудиопотока возможно с метаданными ID3 v2.3 или v2.4 N/AMP3audio/mpeg.mp3
MP4MPEG 4 Части 14H.264/AVC AACvideo/mp4, audio/x-m4a, video/x-m4v.mp4.m4a.m4v
WAVАудиоформат формы волныN/A PCMaudio/x-wav.wav

(*) HL являются протоколом, а не контейнерным типом, но включаются здесь, чтобы агрегировать подобные атрибуты.

Поддерживаемые Протоколы

ПротоколОписаниеСсылка
ФАЙЛ Протокол для представления URI локальных файлов java.net. URI
HTTP Гипертекстовый протокол передачи для представления удаленных файлов java.net. URI
JAR Представление записей носителей в файлах, доступных через ФАЙЛ или протоколы HTTP java.net. JarURLConnection
HTTP Живая Потоковая передача (HL) Основанная на одобренном музыкальном репертуаре потоковая передача носителей через HTTP Интернет-проект: HTTP Живая Потоковая передача

MPEG 4 Воспроизведения через HTTP

Рекомендуется, чтобы MPEG, 4 носителя, которые будут играться по HTTP, форматируются так, что заголовки, требуемые декодировать поток, появился в начале файла. Иначе, воспроизведение могло бы остановиться, пока весь файл не загружается.

HTTP Живая Потоковая передача (HL)

Воспроизведение HL обрабатывает источники с этими характеристиками:
  • По требованию и живые одобренные музыкальные репертуары.
  • Элементарные аудиопотоки MP3 (audio/mpegurl) и мультиплексированные потоки MP2T (application/vnd.apple.mpegurl) с одним аудио AAC и одним видеотреком H.264/AVC.
  • Одобренные музыкальные репертуары с целочисленной или продолжительностью плавающей.
Источники, которые не соответствуют этому основному профилю, как гарантируют, не будут обработаны. Одобренный музыкальный репертуар содержит информацию о потоках, включающих источник, и загружается в начале воспроизведения. Переключаясь между альтернативными потоками, скорости передачи, и видео разрешения обрабатываются автоматически как функция сетевых условий.

Поддерживаемые Теги Метаданных

Контейнер носителей может также включать определенные метаданные, которые описывают носители в файле. Java API Носителей FX делает метаданные доступными через
Media.getMetadata() метод. Ключи в этом отображении упоминаются как теги с тегами, поддерживаемыми Java Носители FX, перечисленные в следующей таблице. Отметьте, что, какие теги доступны для данного источника носителей, зависят от метаданных, фактически сохраненных в том источнике, то есть, не, все теги, как гарантируют, будут доступны.

Контейнер Тег (вводят Строку), Ввести Описание
FXM, FLV  аудиокодек java.lang. Строка Кодер используется для аудиотрека.
FXM, FLV продолжительность javafx.util. Продолжительность Продолжительность носителей.
FXM, FLV  видеокодек java.lang. Строка Кодер используется для видеотрека.
FXM, FLV width java.lang. Целое число width в пикселях видеотрека.
FXM, FLV height java.lang. Целое число height в пикселях видеотрека.
FXM, FLV framerate java.lang. Двойной Частота видеокадров в кадрах в секунду.
FXM, FLV creationdate java.lang. Строка Дата, когда видео создавалось.
FXM, FLV, MP3 необработанные метаданные Карта <Строка, ByteBuffer> Необработанные метаданные согласно соответствующей спецификации носителей. Ключ "ID3" отображает на MP3 метаданные ID3v2 и "FLV" к FLV onMetadata контент маркера.
MP3  художник альбома java.lang. Строка Художник для полного альбома, возможно "Различные Художники" для компиляций.
MP3 альбом java.lang. Строка Имя альбома.
MP3 художник java.lang. Строка Художник дорожки.
MP3 комментарий-N java.lang. Строка Комментарий, где N является с 0 родственниками, индексирует. Формат комментария: ContentDescription [lng] =Comment
MP3 композитор java.lang. Строка Композитор дорожки.
MP3 год java.lang. Целое число Год дорожка был записан.
MP3  количество диска java.lang. Целое число Число дисков в альбоме.
MP3  число диска java.lang. Целое число 1 родственник индексирует диска, на котором появляется эта дорожка.
MP3 продолжительность javafx.util. Продолжительность Продолжительность дорожки.
MP3 жанр java.lang. Строка Жанр дорожки, например, "Классический", "Darkwave", или "Джаз".
MP3 изображение javafx.scene.image. Изображение Обложка альбома.
MP3 title java.lang. Строка Имя дорожки.
MP3  количество дорожки java.lang. Целое число Число дорожек на альбоме.
MP3  номер дорожки java.lang. Целое число 1 родственник индексирует этой дорожки на диске.

Игра Носителей в Java FX

Основное Воспроизведение

Основные шаги, требуемые играть носители в Java FX:

  1. Создайте a Media объект для требуемого источника носителей.
  2. Создайте a MediaPlayer объект от Media объект.
  3. Создайте a MediaView объект.
  4. Добавьте MediaPlayer к MediaView.
  5. Добавьте MediaView к графику сцены.
  6. Вызвать MediaPlayer.play().
Предшествующие шаги иллюстрируются примером кода в MediaView Документация class. Некоторые вещи, которые должны быть отмечены:

Обработка ошибок

Ошибки используя Java Носители FX могут быть или синхронными или асинхронными. По общим синхронным ошибкам проявится как Java Exception и асинхронные ошибки заставят свойство FX Java быть установленным. В последнем случае любой error свойство может наблюдаться непосредственно, onError обратный вызов зарегистрировался, или возможно оба.

Основные источники синхронных ошибок Media() и MediaPlayer(). Асинхронные ошибочные свойства Media.error и MediaPlayer.error, и асинхронные ошибочные обратные вызовы Media.onError, MediaPlayer.onError, и MediaView.onError.

Могли бы быть дублированы некоторые ошибки. Например, a MediaPlayer распространит ошибку, с которой это встречается к его связанному Media, и a MediaPlayer ко всем его связанное MediaViews. Как следствие возможно получить многократные уведомления о возникновении данной ошибки, в зависимости от которой контролируются свойства.

Следующий фрагмент кода иллюстрирует обработку ошибок с носителями:

    String source;
    Media media;
    MediaPlayer mediaPlayer;
    MediaView mediaView;
    try {
        media = new Media(source);
        if (media.getError() == null) {
            media.setOnError(new Runnable() {
                public void run() {
                    // Handle asynchronous error in Media object.
                }
            });
            try {
                mediaPlayer = new MediaPlayer(media);
                if (mediaPlayer.getError() == null) {
                    mediaPlayer.setOnError(new Runnable() {
                        public void run() {
                            // Handle asynchronous error in MediaPlayer object.
                        }
                    });
                    mediaView = new MediaView(mediaPlayer);
                    mediaView.setOnError(new EventHandler() {
                        public void handle(MediaErrorEvent t) {
                            // Handle asynchronous error in MediaView.
                        }
                    });
                } else {
                    // Handle synchronous error creating MediaPlayer.
                }
            } catch (Exception mediaPlayerException) {
                // Handle exception in MediaPlayer constructor.
            }
        } else {
            // Handle synchronous error creating Media.
        }
    } catch (Exception mediaException) {
        // Handle exception in Media constructor.
    }

JavaFX 2.2

Copyright (c) 2008, 2012, Oracle и/или его филиалы. Все права защищены. Использование подвергается срокам действия лицензии.