Java Media Framework - Java Media Framework
![]() JMF je jednoduché JMStudio přehrávání aplikace a QuickTime film | |
Vývojáři | Sun Microsystems |
---|---|
Stabilní uvolnění | 2.1.1e / 23. května 2003 |
Napsáno | Jáva |
Operační systém | Cross-platform |
Typ | Knihovna pro multimédia |
webová stránka | Java Media Framework API (JMF), na webu Oracle.com |
The Java Media Framework (JMF) je Java knihovna který umožňuje přidávat audio, video a další časově závislá média Jáva aplikace a applety. Tento volitelný balíček, který dokáže zachytit, přehrát, streamovat a překódovat více souborů formáty médií, rozšiřuje Platforma Java, standardní vydání (Java SE) a umožňuje vývoj multimediálních aplikací napříč platformami.
Verze a licencování
Počáteční verze JMF určená pouze k přehrávání byla vyvinuta společností Sun Microsystems, Křemíková grafika, a Intel a vydáno jako JMF 1.0 v roce 1997. JMF 2.0, vyvinutý společnostmi Sun a IBM, vyšlo v roce 1999 a přidalo zachycení, streamování, připojení kodeky a překódování. JMF je označen jako součást technologie Sun „Desktop“ J2SE na rozdíl od aplikačních frameworků na straně serveru Java a na straně klienta. Pozoruhodné výjimky jsou Java applety a Java Web Start, kteří mají přístup k úplnému JMF v podkladovém JRE webového prohlížeče nebo appletviewera.[1][2]
JMF 2.0 byl původně dodáván s dekodérem a kodérem MP3. To bylo odstraněno v roce 2002 a nový plug-in pouze pro přehrávání MP3 byl zveřejněn v roce 2004.
Binární soubory JMF jsou k dispozici pod vlastní licencí a zdroj je k dispozici pod SCSL.
Aktuální verze se dodává se čtyřmi SKLENICE soubory a shell skripty pro spuštění čtyř aplikací založených na JMF:
- JMStudio - Jednoduché GUI hráče
- JMFRegistry - GUI pro správu „registru“ JMF, který spravuje předvolby, doplňky atd.
- JMFCustomizer - Používá se k vytvoření souboru JAR, který obsahuje pouze třídy potřebné pro konkrétní aplikaci JMF, což vývojářům umožňuje dodávat menší aplikaci.
- JMFInit
JMF je k dispozici ve verzi Java a jako „výkonové balíčky“ specifické pro platformu, které mohou obsahovat přehrávače nativního kódu pro platformu a / nebo se připojují k multimediálnímu modulu specifickému pro tuto platformu. JMF 2.0 nabízí výkonové balíčky pro Linux, Solaris (na SPARC) a Windows.[1]
V lednu 2011 vydal Tudor Holton ze společnosti Bentokit Project a Balíček Debianu aby JMF zmírnil potíže, které se v průběhu času objevily při instalaci JMF Debian a Ubuntu GNU / Linux. Tento balíček neobsahuje JMF, ale poskytuje uživateli licenci JMF, načte ji z webu Oracle a poté ji nainstaluje.[3] Podobnost Balíček Debianu instalační program pro JMF MP3 Plugin byl také postaven v únoru 2011.[4]
Koncepty designu
JMF abstrahuje média, se kterými pracuje Zdroj dat
s (pro média čtená do JMF) a DataSink
s (pro exportovaná data). Neposkytuje vývojáři významný přístup k podrobnostem daného formátu; spíše jsou média reprezentována jako zdroje (samy o sobě získané z URL), které lze číst a přehrávat, zpracovávat a exportovat (i když ne všechny kodeky podporují zpracování a překódování).
A Manažer
třída nabízí statické metody, které jsou primárním kontaktním bodem s JMF pro aplikace.
Kritika a alternativy
Mnoho vývojářů JMF si stěžovalo, že implementace JMF dodávaná v aktuálních prostředích JRE podporuje relativně málo aktuálních kodeků a formátů. Například jeho verze Java nemůže hrát MPEG-2, MPEG-4, Windows Media, RealMedia, většina QuickTime filmy, Blikat obsah novější než Flash 2 a pro přehrávání všudypřítomného obsahu potřebuje zásuvný modul MP3 formát.[5] Balíčky výkonu nabízejí možnost používat knihovnu médií nativní platformy, ale jsou nabízeny pouze pro Linux, Solaris a Windows. Zejména vývojáři JMF se systémem MS Windows, kteří jsou v JMF noví, často očekávají podporu některých novějších formátů na všech platformách, pokud jsou tyto formáty ve skutečnosti podporovány pouze v MS Windows.
Zatímco JMF je považován za velmi užitečný rámec, volně dostupná implementace poskytovaná společností Oracle trpí nedostatkem aktualizací a údržby. Společnost JMF nedostává od společnosti Oracle příliš velké úsilí; API nebylo vylepšeno od roku 1999 a poslední novinka na domovské stránce JMF byla zveřejněna v září 2008. I když je JMF vytvořeno pro rozšiřitelnost, existuje jen málo takových rozšíření třetích stran. Navíc funkce pro editaci obsahu v JMF skutečně neexistují. Můžete provádět jednoduché nahrávání a přehrávání zvuku a videa, ale implementace poskytovaná společností Oracle může dělat jen málo jiného.[6]
Platformy nad rámec těch, které Oracle poskytuje podporu, jsou ponechány jejich odpovídajícím dodavatelům JRE.[7] Zatímco Sun stále poskytuje fórum pro diskusi o jeho implementaci, vyvinulo se několik snah o implementaci alternativ open-source.[8][9][10][11][12]
Alternativy
V závislosti na potřebách vývojáře může být vhodnější několik dalších knihoven než JMF. Tyto zahrnují:
- Freedom for Media in Java (FMJ) API kompatibilní s alternativou open source JMF
- QuickTime pro Javu
- IBM Toolkit pro MPEG-4
- Jffmpeg
- vlcj
- gstreamer-java
- Cortado, kompletní hráč pro Ogg Vorbis a Theora v appletu Java
- Directshow <> Java Wrapper
- Knihovna MP3 JLayer
- Video4Linux4Java
Příklad kódu
Následující příklad ukazuje AWT dialog pro výběr souboru a pokusí se načíst a přehrát mediální soubor vybraný uživatelem.
import javax.media. *;import java.io.soubor;import java.awt. *;veřejnost třída TrivialJMFPlayer rozšiřuje Rám { veřejnost statický prázdnota hlavní (Tětiva[] args) { Snaž se { Rám F = Nový TrivialJMFPlayer(); F.balíček(); F.setVisible (skutečný); } chytit (Výjimka E) { E.printStackTrace(); } } veřejnost TrivialJMFPlayer() hodí Jáva.io.IOException, Jáva.síť.MalformedURLE výjimka, javax.média.MediaException { FileDialog fd = Nový FileDialog (tento, „TrivialJMFPlayer“, FileDialog.ZATÍŽENÍ); fd.setVisible(skutečný); Soubor F = Nový Soubor(fd.getDirectory(), fd.getFile()); Hráč p = Manažer.createRealizedPlayer (F.toURI().toURL()); Součástka C = p.getVisualComponent(); přidat(C); p.Start(); }}
Velká část tohoto příkladu souvisí s tvorbou grafického uživatelského rozhraní AWT. Pouze dva řádky se dotýkají JMF. Manager.createRealizedPlayer ()
implicitně vytváří a Zdroj dat
z URL reprezentace souboru vytvoří Hráč
, a uvědomuje si to znamená, že jsou přiděleny a inicializovány všechny zdroje potřebné k přehrávání. The getVisualComponent ()
ptá se Hráč
pro AWT Součástka
vhodné pro použití v grafickém uživatelském rozhraní. Pokud by byla požadována kontrolní komponenta, byla by získána pomocí getControlPanelComponent ()
a přidány do grafického uživatelského rozhraní samostatně. Upozorňujeme, že vývojářovi nejde o formát média - tento kód funguje stejně dobře pro jakýkoli formát média, který může JMF importovat a číst.
Reference
- ^ A b JMF FAQ
- ^ Java Media Framework API
- ^ „Instalační program Ubuntu pro JMF“. panel. Citováno 4. března 2011.
- ^ „Instalační program JMF Plugin pro Debian“. Citováno 4. března 2011.
- ^ JMF 2.1.1 - Podporované formáty
- ^ JMF: Chyba, která žádá o opětovné vytvoření Chris Adamson, 13. prosince 2005
- ^ Pokyny k instalaci JMF na Mac OS X
- ^ JMF-Interest, oficiální diskusní seznam Archivováno 2006-04-27 na Wayback Machine
- ^ Jffmpeg: JMF open-source plugin pro podporu dalších kodeků
- ^ Fobs4JMF: Další plugin JMF s otevřeným zdrojovým kódem pro podporu dalších kodeků
- ^ FMJ: Náhrada open source za / alternativu / implementaci JMF
- ^ Xuggler: Plugin Java s otevřeným zdrojovým kódem, který podporuje další kodeky a je automaticky aktualizován FFMPEG