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

Пакет javafx.scene.media

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

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

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

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

Содержание

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

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

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

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

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

КодированиеВвестиОписание
MP3Аудио Необработанный MPEG 1, 2, и 2.5 аудио; уровни I, II, и III; все поддерживаемые комбинации выборки частот и скоростей передачи.
PCMАудиоНесжатые, необработанные аудиосэмплы
VP6ВидеоOn2 VP6 сжатие видео

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

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

КонтейнерОписаниеВидео Кодирование АудиокодированиеТип MIMEРасширение файла
AIFFАудио Формат файла ОбменаN/A PCMaudio/x-aiff.aif.aiff
FXM, FLVНосители FX, Видео FlashVP6 MP3video/x-javafx.fxm.flv
MP3MPEG 1, 2, 2.5 необработанных аудиопотока возможно с метаданными ID3 v2.3 или v2.4 N/AMP3audio/mpeg.mp3
WAVАудиоформат формы волныN/A PCMaudio/x-wav.wav

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

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

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

Контейнер носителей может также включать определенные метаданные, которые описывают носители в файле. 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. Строка Дата, когда видео создавалось.
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.
    }

Java FX 2.0

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