Interested Article - Java Media Framework
- 2020-12-31
- 1
Java Media Framework ( англ. Каркас мультимедийных Java приложений ) — библиотека, облегчающая разработку программ, работающих с аудио и видео.
Во второй версии библиотеки была добавлена поддержка кодирования и декодирования MP3, но позже в 2000 году она была исключена из поставки. В 2004 году было опубликовано дополнение для воспроизведения MP3 данных. Скомпилированные файлы доступны под различными лицензиями, а код под .
Текущая версия поставляется с набором JAR файлов и сценариев для запуска приложений использующих JMF:
- JMStudio — простой плеер с графическим интерфейсом
- JMFRegistry — графическая утилита для работы с реестром, конфигурирующим различные настройки, дополнения и пр.
- JMFCustomizer — программа для создания минималистичных проставок JMF с необходимыми классами, используемыми в приложении, благодаря которой разработчики могут уменьшить размер конечного приложения
- JMFInit
Основные принципы
Библиотека абстрагирует работу с
мультимедиа
посредством
DataSource
для импорта и
DataSink
для экспорта мультимедийных данных. Данный подход позволяет разработчикам одинаково работать со всеми форматами данных, поддерживаемых JMF.
Класс
Manager
предоставляет статические методы, наиболее часто используемые для работы с библиотекой.
Критика и альтернативы
Одним из основным недостатков библиотеки можно назвать отсутствие поддержки многих современных форматов. Например, на всех платформах Java невозможно воспроизведение MPEG-2 , MPEG-4 , , RealMedia , большинства видео QuickTime , данных Flash версий больше 2-й, а для воспроизведения MP3 требуется дополнение . А большинство дополнений улучшающих быстродействие доступны только для Linux , Solaris и Windows .
Альтернативы
Название | Описание | Состояние | Лицензия | Сайт |
---|---|---|---|---|
Freedom for Media in Java (FMJ) | реализация JMF с открытым исходным кодом | не обновлялся с 2007 года | - | |
- | вышла в апреле 2004 | - | ||
QuickTime for Java ( ) | разрабатывалась Apple | не разрабатывается | - | - |
IBM Toolkit for MPEG-4 | - | - | - | |
Jffmpeg | Частичный порт FFMPEG на Java для использования с JMF | не обновлялся с 2006 года | - | |
jvlc | - | не разрабатывается | - | |
vlcj | Позволяет встраивать плеер VLC в AWT или Swing приложение | активное | - | |
gstreamer-java | библиотека для использования gstreamer 0.10 в Java | почти не развивается | - | |
Cortado | Ogg Vorbis и Theora Java applet плеер | - | - | |
Directshow <> Java Wrapper | - | - | - | |
Fobs4JMF | - | не разрабатывается | - | |
JLayer MP3 library | - | - | - | от 12 сентября 2008 на Wayback Machine |
Xuggler | - | не разрабатывается | GPLv3 или LGPL | |
Video4Linux4Java | библиотека для доступа к v4l и v4l2 | не обновлялся с августа 2013 года | GPLv3 |
Пример
Данная программа отображает AWT диалог открытия файла и пытается проиграть выбранный файл.
import javax.media.*;
import java.io.File;
import java.awt.*;
public class TrivialJMFPlayer extends Frame {
public static void main (String[] args) {
try {
Frame f = new TrivialJMFPlayer();
f.pack();
f.setVisible (true);
} catch (Exception e) {
e.printStackTrace();
}
}
public TrivialJMFPlayer()
throws java.io.IOException,
java.net.MalformedURLException,
javax.media.MediaException {
FileDialog fd = new FileDialog(this, "TrivialJMFPlayer", FileDialog.LOAD);
fd.setVisible(true);
File f = new File(fd.getDirectory(), fd.getFile());
Player p = Manager.createRealizedPlayer(f.toURI().toURL());
Component c = p.getVisualComponent();
add(c);/*this code dosn't work =P*/
p.start();
}
}
Большая часть текста программы предназначена для работы с AWT, в то время как только 2 строчки используют JMF.
-
Manager.createRealizedPlayer()
неявно создаётDataSource
из полученного URL файла, с которым в дальнейшем работает объектPlayer
. -
Метод
getVisualComponent()
создаётComponent
, который может в дальнейшем использоваться как часть графического интерфейса . Если требуются элементы управления воспроизведением, то необходимо дополнительно вызвать методgetControlPanelComponent()
, который создаст объект, который можно также добавить в интерфейс программы.
Данный пример одинаково подходит для всех типов мультимедиа, поддерживаемых библиотекой JMF.
См. также
- Java OpenGL — библиотека для работы с OpenGL
Примечания
- . Дата обращения: 15 февраля 2015. 15 февраля 2015 года.
- . Дата обращения: 15 февраля 2015. 15 февраля 2015 года.
- . Дата обращения: 14 февраля 2015. 14 февраля 2015 года.
Ссылки
- по воспроизведению аудио и видео с использованием JMF
- 2020-12-31
- 1