Введение
Java Media Framework (JMF) — это библиотека Java, позволяющая добавлять аудио-, видео- и другие временные медиа в Java-приложения и апплеты. Этот необязательный пакет, способный захватывать, воспроизводить, передавать в потоковом режиме и перекодировать различные медиаформаты, расширяет платформу Java, стандартное издание (Java SE) и обеспечивает разработку кроссплатформенных мультимедийных приложений.
Концепции проектирования
JMF абстрагирует медиа, с которыми он работает, в DataSources (для медиа, считываемых в JMF) и DataSinks (для данных, экспортируемых из JMF). Он не предоставляет разработчику существенного доступа к особенностям какого-либо конкретного формата; вместо этого медиа представлены в виде источников (получаемых из URL-адресов), которые можно читать, воспроизводить, обрабатывать и экспортировать (хотя не все кодеки поддерживают обработку и транскодирование). Класс Manager предоставляет статические методы, являющиеся основной точкой взаимодействия приложений с JMF.
Критика и альтернативы
Многие разработчики JMF жаловались на то, что реализация JMF, поставляемая с современными JRE, поддерживает относительно небольшое количество актуальных кодеков и форматов. Например, все Java-версии не могут воспроизводить MPEG 2, MPEG 4, Windows Media, RealMedia, большинство фильмов QuickTime, Flash-контент новее Flash 2, и для воспроизведения повсеместно распространенного формата MP3 требуется плагин. Хотя пакеты повышения производительности позволяют использовать медиа-библиотеку родной платформы, они доступны только для Linux, Solaris и Windows. В частности, разработчики JMF на платформе MS Windows, начинающие работу с JMF, часто ожидают поддержки некоторых новых форматов на всех платформах, хотя на самом деле эти форматы поддерживаются только на MS Windows. Несмотря на то, что JMF считается очень полезным фреймворком, свободно распространяемая реализация от Oracle страдает от недостатка обновлений и поддержки. Oracle уделяет JMF мало внимания; API не обновлялся с 1999 года, а последняя новость на главной странице JMF была опубликована в сентябре 2008 года. Хотя JMF разработан с учетом возможности расширения, сторонних расширений для него немного. Более того, функциональность редактирования контента в JMF практически отсутствует. Можно выполнять простую запись и воспроизведение аудио и видео, но реализация, предоставляемая Oracle, не поддерживает практически никаких других функций. Поддержка платформ, отличных от тех, которые поддерживает Oracle, ложится на соответствующих поставщиков JRE. Хотя Sun по-прежнему предоставляет форум для обсуждения своей реализации, предпринимались различные попытки создать альтернативы с открытым исходным кодом.