Microsoft DirectX 8.0 (C++)

オーディオ データのロード

DirectMusic オブジェクトをパフォーマンスに組み込む前に、それらをファイルまたはリソースからロードしなければならない。IDirectMusicLoader8 インターフェイスは、これらのオブジェクトの列挙およびロードを管理するために使用される。また、キャッシュすることによってオブジェクトのロードが一度で済むようにするためにも使用される。

アプリケーションでは、既存のローダーのインスタンスを、一度に 1 つだけ使用するべきである。1 つのグローバル ローダー オブジェクトを作成し、ロードがすべて終了するまでオブジェクトを解放しないようにする。この方法により、オブジェクトが効果的に検索およびキャッシングされる。

DirectMusic における IStream の実装により、データがソースからストリームに入れられる。データの解析は、IPersistStream の実装を通して、さまざまなオブジェクト自身によって処理される。標準的な DirectMusic データだけを処理する場合は、これらのインターフェイスを直接使用する必要はない。

ほかのオブジェクトによって参照されるオブジェクトのロードは、透過的に処理される。たとえば、DirectMusic Producer からロードされるスタイルに、ほかのファイルにデータがあるバンドへの参照が含まれているとする。スタイルの IPersistStream は参照を見つけると、データ ストリームを渡した IStream から IDirectMusicGetLoader8 インターフェイスを取得する。このインターフェイスを使用して、ローダー オブジェクトへのポインタを取得する。続いて、IDirectMusicLoader8::GetObject を呼び出して、バンドをロードする。

ローダーの使用方法の詳細については、次のトピックを参照すること。

DirectX Audio の高度なトピック」の「カスタム ロード」も参照すること。