MIDI を再生するには ?
MIDI に限らず音声の再生を行うには、以下のような方法があります。
IMediaUtil インターフェイスを使用して再生
BREW SDK 2.1 には、簡単にメディアデータを再生するための IMediaUtil というインターフェイスが用意されています。 このインターフェイスは、再生対象のメディアデータが何であるかを自動的に判別し、 対応する IMedia 派生インターフェイスを作成して返してくれます。 IMediaUtil を使う場合の再生手順は、次のようになります。
- ISHELL_CreateInstance 関数で IMediaUtil インターフェイスを取得する。
- IMediaUtil_CreateMedia 関数を呼び出して IMedia 派生インターフェイスを作成する。
- IMedia_Play 関数で再生する。
IMedia 派生インターフェイスを作成してファイルを再生
メディア形式に応じたインターフェイスを作成した上で、 そのインターフェイスが再生可能なメディア ファイルを読み取らせることで、再生を行います。 IMedia 派生インターフェイスを使用した場合の再生手順は、次のようになります。
- ISHELL_CreateInstance 関数で IMedia 派生インターフェイスを作成する。
- IMedia_SetMediaData 関数で、メディアデータのファイル名をセットアップする。
- IMedia_Play 関数で再生する。
IMedia 派生インターフェイスを作成し、メディアデータを格納したバッファを再生
IMedia の再生データとして任意のバッファを指定できます。 この方法ですと、メディアデータを必ずしも通常のメディアファイル (MP3ファイル、MIDIファイルなど)として格納しておく必要はありませんので、 データソースの自由度が高くなります。 メディアデータを格納したバッファを使用した場合の再生手順は、次のようになります。
- IFileMgr、 IFile インターフェイスを使用して、ファイルからメディアデータを読み取り、 バッファに格納する。
- ISHELL_CreateInstance 関数で IMedia 派生インターフェイスを作成する。
- IMedia_SetMediaData 関数で、メディアデータを格納したバッファをセットアップする。
- IMedia_Play 関数で再生する。
SophiaFramework では、 SFBMedia、 SFBMediaUtil インターフェイスを使用します。
音声の再生に関しては、以下の Web サイトを参照してください。