Platform SDK: DirectX |
IDirectSound::CreateSoundBuffer メソッドは、サンプリング オーディオのシーケンスを保持するための DirectSoundBuffer オブジェクトを作成する。
HRESULT CreateSoundBuffer( LPCDSBUFFERDESC lpcDSBufferDesc, LPLPDIRECTSOUNDBUFFER lplpDirectSoundBuffer, IUnknown FAR * pUnkOuter );
成功すれば DS_OK、失敗すれば次のエラー値のいずれかを返す。
DSERR_ALLOCATED |
DSERR_CONTROLUNAVAIL |
DSERR_BADFORMAT |
DSERR_INVALIDPARAM |
DSERR_NOAGGREGATION |
DSERR_OUTOFMEMORY |
DSERR_UNINITIALIZED |
DSERR_UNSUPPORTED |
DSBCAPS_CTRLDEFAULT は、これが表す個別のフラグを使うようにと削除された。DSBCAPS_CTRLDEFAULT は、DSBCAPS_CTRLPAN | DSBCAPS_CTRLVOLUME | DSBCAPS_CTRLFREQUENCY として定義された。必要なフラグだけを指定することにより、不必要なリソースを減らすことができる。
サウンド バッファを再生する前に、アプリケーションは IDirectSound::SetCooperativeLevel メソッドを使って DirectSound オブジェクトの協調レベルを指定しなければならない。
lpDSBufferDesc パラメータは、フォーマット、サイズ、能力など、希望のバッファのタイプ情報を含む構造体を指す。アプリケーションは必要な能力を指定しなければならない。さもないと、それらの能力は利用できない。たとえば、DirectSound オブジェクトを作成するときに DSBCAPS_CTRLFREQUENCY フラグを指定しておかないと、IDirectSoundBuffer::SetFrequency の呼び出しはすべて失敗する。
DSBCAPS_STATIC フラグを指定することもできる。その場合、DirectSound はオンボード メモリ (使用可能な場合) にバッファを格納し、ハードウェア ミキシングを利用できる。ハードウェアまたはソフトウェアのミキシングをバッファに使わせるには、それぞれ DSBCAPS_LOCHARDWARE または DSBCAPS_LOCSOFTWARE フラグを使う。さらに、DirectSound は DSBCAPS_LOCDEFER フラグを使用することで、再生中にハードウェアやソフトウェアのリソースを割り当てる。
バッファがハードウェアかソフトウェアに作成されたことを把握するには、IDirectSoundBuffer:GetCaps メソッドを呼び出し、返された DSBCAPS 構造体の dwFlags メンバの DBSCAPS_LOCHARDWARE フラグ、または DSBCAPS_LOCSOFTWARE フラグをチェックする。
Windows NT/2000 : Service Pack 3 を適用した Windows NT バージョン 4.0 以降が必要。
Windows 95/98 :Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
ヘッダー : dsound.h で宣言。
インポート ライブラリ : dsound.lib を使用。
DSBUFFERDESC、IDirectSound::DuplicateSoundBuffer、IDirectSound::SetCooperativeLevel、IDirectSoundBuffer, IDirectSoundBuffer::GetFormat、IDirectSoundBuffer::GetVolume、IDirectSoundBuffer::Lock、IDirectSoundBuffer::Play、IDirectSoundBuffer::SetFormat、IDirectSoundBuffer::SetFrequency