Java Media Framework
Java Media Framework(JMF)は、音声や動画など時系列で変化するメディアをJavaアプリケーションやアプレットに追加するためのJavaライブラリである。このオプションパッケージには、各種メディアフォーマットをキャプチャし、再生し、ストリーミングし、変換する機能がある。Java Platform, Standard Edition (Java SE) を拡張するもので、クロスプラットフォームのマルチメディアアプリケーションの開発を可能にする。 バージョンとライセンス最初の再生のみ可能なバージョンは、サン・マイクロシステムズ、シリコングラフィックス、インテルが開発し、1997年に JMF 1.0 としてリリースされた。1999年にはサンとIBMが開発した JMF 2.0 が登場し、キャプチャ、ストリーミング、入れ替え可能なコーデック、フォーマット変換などの機能が追加された[1]。 JMF 2.0 には当初 MP3 のコーデックが付属していたが、2002年に削除され、2004年に再生のみのMP3プラグインが登場した。 JMF のバイナリは特殊なライセンスで提供されており、ソースは SCSL (Sun Community Source License) で提供されている。 現在のバージョンには4つのJARファイルがあり、以下の4つのJMFベースのアプリケーションを起動するシェルスクリプトが付属している。
JMF にはあらゆるJavaで動作するバージョンと、プラットフォーム固有の「パフォーマンスパック」がある。後者はそのプラットフォームのネイティブコードを含み、プラットフォーム固有のマルチメディアエンジンを利用する場合がある。JMF 2.0 では、Linux、Solaris(SPARC)、Windows 向けのパフォーマンスパックがある[1]。 設計コンセプトJMF ではメディアを アプリケーションは コード例以下のコード例は、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 GUI の構築を行っており、JMF を使っているのは2行だけである。 批判と代替手法JMF はサポートしているコーデックが少ないと言われている。例えばJavaバージョンでは、MPEG-2、MPEG-4、RealMedia、ほとんどのQuickTimeムービー、Flash 2 以降のFlashコンテンツを再生できないし、MP3の再生にはプラグインが必要である[2]。一方、パフォーマンスパックではプラットフォームのメディアライブラリを利用できるが、Linux と Solaris と Windows でしか提供されていない。さらに Windows 用パフォーマンスパックを使っていると、実力以上に各種フォーマットをサポートしていると思い込むことがあり、他のプラットフォームではそうではないことをアプリケーション開発後に知ることになる。 また、サンはJMFを放置しているように見える。APIが最後に修正されたのは1999年で、公式サイトの最新ニュースの日付は2004年11月である。JMFは拡張可能なように構築されているが、サードパーティによる拡張はほとんどない。さらに、JMFにはメディアの編集機能がほとんどないため、利用範囲も限られる。 代替手法JMF以外にも Java 上のマルチメディア機能をサポートしたライブラリが存在する。以下に主なものを列挙する。
脚注外部リンク |
Portal di Ensiklopedia Dunia