WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте
Java Media Framework
Тип мультимедийный фреймворк
Автор Sun Microsystems
Разработчик Sun Microsystems
Написана на Java
Первый выпуск 1997
Аппаратная платформа кроссплатформенность
Последняя версия
Лицензия пользовательское соглашение[1]
Сайт oracle.com/technetwork/j…

Java Media Framework (англ. Каркас мультимедийных Java приложений) — библиотека, облегчающая разработку программ, работающих с аудио и видео.

Во второй версии библиотеки была добавлена поддержка кодирования и декодирования MP3, но позже в 2000 году она была исключена из поставки. В 2004 году было опубликовано дополнение для воспроизведения MP3 данных. Скомпилированные файлы доступны под различными лицензиями, а код под SCSL.

Текущая версия поставляется с набором JAR файлов и сценариев для запуска приложений использующих JMF:

  • JMStudio[2] — простой плеер с графическим интерфейсом
  • JMFRegistry[3] — графическая утилита для работы с реестром, конфигурирующим различные настройки, дополнения и пр.
  • JMFCustomizer — программа для создания минималистичных проставок JMF с необходимыми классами, используемыми в приложении, благодаря которой разработчики могут уменьшить размер конечного приложения
  • JMFInit

Основные принципы

Библиотека абстрагирует работу с мультимедиа посредством DataSource для импорта и DataSink для экспорта мультимедийных данных. Данный подход позволяет разработчикам одинаково работать со всеми форматами данных, поддерживаемых JMF.

Класс Manager предоставляет статические методы, наиболее часто используемые для работы с библиотекой.

Критика и альтернативы

Одним из основным недостатков библиотеки можно назвать отсутствие поддержки многих современных форматов. Например, на всех платформах Java невозможно воспроизведение MPEG-2, MPEG-4, Windows Media, RealMedia, большинства видео QuickTime, данных Flash версий больше 2-ой, а для воспроизведения MP3 требуется дополнение[4]. А большинство дополнений улучшающих быстродействие доступны только для Linux, Solaris и Windows.

Альтернативы

НазваниеОписаниеСостояниеЛицензияСайт
Freedom for Media in Java (FMJ)реализация JMF с открытым исходным кодомне обновлялся с 2007 года-
Java Sound API-вышла в апреле 2004-
QuickTime for Java (en)разрабатывалась Appleне разрабатывается--
IBM Toolkit for MPEG-4---
JffmpegЧастичный порт FFMPEG на Java для использования с JMFне обновлялся с 2006 года-
jvlc-не разрабатывается-
vlcjПозволяет встраивать плеер VLC в AWT или Swing приложениеактивное-
gstreamer-javaбиблиотека для использования gstreamer 0.10 в Javaпочти не развивается-
CortadoOgg Vorbis и Theora Java applet плеер--
Directshow <> Java Wrapper---
Fobs4JMF-не разрабатывается-
JLayer MP3 library---
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

Примечания

Ссылки

  • Руководство по воспроизведению аудио и видео с использованием JMF

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии