Microsoft DirectX 8.0 (C++) |
プレーヤーまたはグループに対する 3D サウンド バッファを取得する。3D サウンド バッファ オブジェクトのメソッドを使用すると、指定したグループまたはプレーヤーから受信した音声伝送の仮想 3D 位置を変更できる。
HRESULT Create3DSoundBuffer( DVID dvID, LPDIRECTSOUNDBUFFER lpdsSourceBuffer, DWORD dwPriority, DWORD dwFlags, LPDIRECTSOUND3DBUFFER* lpUserBuffer );
成功した場合は DV_OK を返す。または、次のいずれかのエラー値を返す。
DVERR_ALREADYBUFFERED |
DVERR_INVALIDOBJECT |
DVERR_INVALIDPARAM |
DVERR_INVALIDPOINTER |
DVERR_NOTALLOWED |
DVERR_NOTCONNECTED |
DVERR_NOTINITIALIZED |
DVERR_OUTOFMEMORY |
DVERR_SESSIONLOST |
DirectPlay の音声セッションがミキシング サーバー セッションの場合、このメソッドは失敗し、DVERR_NOTALLOWED を返す。
3D サウンド バッファ オブジェクトのすべてのメンバ関数にアクセスできるが、DirectPlay Voice クライアントがバッファを使用して受信オーディオのストリーミングを行うため、DirectSound3Dbuffer オブジェクトの Lock、UnLock、Play の各メソッドは使用しないこと。
ここでバッファを指定した場合、DirectPlay はそのバッファをプレーヤーまたはグループのバッファとして使用する。ユーザー作成のバッファには次の制限がある。
バッファの形式が正しくない場合、メソッドは DVERR_INVALIDBUFFER を返す。
DirectPlay にバッファを渡すときは、バッファがロックされていてはならない。個々のユーザーが不必要になるか、プレーヤーが音声セッションを離れる場合、IDirectPlayVoiceClient::Delete3DSoundBuffer を呼び出し、リソースを解放する必要がある。
DirectPlay Voice がバッファに書き込もうとしたときにバッファまたはバッファの一部がロックされている場合、メソッドは DVERR_INVALIDBUFFER を返す。メソッドが返った後でバッファをロックした場合は、DVMSGID_SESSIONLOST メッセージを受け取る。関連付けられた構造体の hResult メンバに DVERR_LOCKEDBUFFER が設定される。この後のメソッドの呼び出しは、DVERR_NOTCONNECTED エラー コードを返す。
Windows NT/2000 : Windows 2000 以降に対する再配布可能ファイルとして提供。
Windows 95/98 : Windows 95 以降に対する再配布可能ファイルとして提供。
ヘッダー : Dvoice.h で宣言。