Java Media Framework
![]() | Страницу в данный момент активно редактирует участник [[user:Phoenix720|Phoenix720]] ([[user talk:Phoenix720|обс.]] · [[special:Contributions/Phoenix720|вклад]]). |
Java Media Framework | |
---|---|
Тип | мультимедийный фреймворк и библиотека функций |
Разработчик | Sun Microsystems |
Написана на | Java |
Первый выпуск | 1997 |
Аппаратная платформа | кроссплатформенность |
Последняя версия | |
Лицензия | пользовательское соглашение[1] |
Сайт | oracle.com/technetwork/j… |
Java Media Framework (англ. Каркас мультимедийных Java приложений) — библиотека, облегчающая разработку программ, работающих с аудио и видео.
Текущая версия поставляется с набором JAR файлов и сценариев для запуска приложений использующих JMF:
- JMStudio — простой плеер с графическим интерфейсом
- JMFRegistry — графическая утилита для работы с реестром, конфигурирующим различные настройки, дополнения и пр.
- JMFCustomizer — программа для создания минималистичных проставок JMF с необходимыми классами, используемыми в приложении, благодаря которой разработчики могут уменьшить размер конечного приложения
- JMFInit
Принципы дизайна
Библиотека абстрагирует работу с мультимедиа посредством DataSource
для импорта и DataSink
для экспорта мультимедийных данных. Данный подход позволяет разработчикам одинаково работать со всеми форматами данных, поддерживаемых JMF.
Класс Manager
предоставляет статические методы, наиболее часто используемые для работы с библиотекой.
Пример
Данная программа отображает 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);
p.start();
}
}
Большая часть текста программы предназначена для работы с AWT, в то время как только 2 строчки используют JMF.
Manager.createRealizedPlayer()
неявно создаётDataSource
из полученного URL файла, с которым в дальнейшем работает объектPlayer
.- Метод
getVisualComponent()
создаётComponent
, который может в дальнейшем использоваться как часть графического интерфейса. Если требуются элементы управления воспроизведением, то необходимо дополнительно вызвать методgetControlPanelComponent()
, который создаст объект, который можно также добавить в интерфейс программы.
Данный пример одинаково подходит для всех типов мультимедиа, поддерживаемых библиотекой JMF.