BREW プログラミング入門(9)
|
|
これは、IMediaQCPインタフェースでは、IMediaインタフェースが提供するインタフェース関数を使用できますが、それに加えて、IMEDIAQCP_SetFormat() と IMEDIAQCP_GetFormat() という二つの関数も使用できる、という説明です。
このように、「IMediaから派生したインタフェース」は、IMediaと同じインタフェース関数をもち、それに加えて独自の関数をもつことができます。
インタフェースの階層構造
インタフェースの派生関係は、すべてのBREWインタフェースの間に存在し、1つの階層構造を形成しています。BREWインタフェースの階層構造については、「BREW APIリファレンスの」の左のメニューから「BREW SDK AEE階層チャート」を選択しますと、見ることができます。
なぜこのようなややこしい構造になっているのでしょうか。MP3を再生するためのインタフェースも、MIDIを再生するためのインタフェースも、同じインタフェースとして扱えると便利だからです。
MP3もMIDIも音声データであるということは同じで、ただデータ形式が違うというだけですので、BREW開発者から見れば、再生するための関数は同じであってほしいものです。
このように、どんなデータ形式の音声ファイルでも統一的にプログラミングできるようにするために、IMediaインタフェースという "抽象的なインタフェース" を定義しています。
このようなインタフェースの階層構造はC++のようなオブジェクト指向言語と高い親和性をもちますので、C言語でのBREWプログラミングに慣れましたら、C++言語についても学習されるとよいでしょう。
インタフェースの派生は、C++やJavaのクラスの派生と同じものです。BREWのインタフェース関数は、C++やJavaの仮想関数にあたります。
※IMediaのように、それ自体機能をもたず、派生インタフェースで具体的な機能をもたせることを前提としたインタフェースのことを「抽象インタフェース」と呼ぶことがあります。
音声再生の方法
音声再生の方法にはいくつかありますが、最も簡単な方法として、今回は三通りの方法を解説します。
方法1:IMediaUtil を使用して再生
BREW 2.1には、簡単にメディアデータを再生するためのIMediaUtil というインタフェースが用意されています。
このインタフェースは、再生対象のメディアデータが何であるかを自動的に判別し、対応する IMedia 派生インタフェースを作成して返してくれます。
IMediaUtil を使う場合の再生手順は次のようになります。
方法2:IMedia派生インタフェースを作成してファイルを再生
こちらの方法は、メディア形式に応じたインタフェーイスを作成した上で、そのインタフェーイスが再生可能なメディア ファイルを読み取らせることで、再生を行います。
方法3:IMedia 派生インタフェースを作成し、メディアデータを格納したバッファを再生
IMedia の再生データとして任意のバッファを指定できます。この方法ですと、メディアデータを必ずしも通常のメディアファイル (MP3ファイル、MIDIファイルなど)として格納しておく必要はありませんので、データソースの自由度が高くなります。
最新CPU搭載パソコンはドスパラで!!
第3世代インテルCoreプロセッサー搭載PC ドスパラはスピード出荷でお届けします!!
最新スペック搭載ゲームパソコン
高性能でゲームが快適なのは
ドスパラゲームパソコンガレリア!