Microsoft DirectX 8.0 (C++)

IDirectPlayVoiceClient::Create3DSoundBuffer

プレーヤーまたはグループに対する 3D サウンド バッファを取得する。3D サウンド バッファ オブジェクトのメソッドを使用すると、指定したグループまたはプレーヤーから受信した音声伝送の仮想 3D 位置を変更できる。

HRESULT Create3DSoundBuffer(
DVID dvID,
LPDIRECTSOUNDBUFFER lpdsSourceBuffer,
DWORD dwPriority,
DWORD dwFlags,
LPDIRECTSOUND3DBUFFER* lpUserBuffer
);

パラメータ

dvID
ユーザーがバッファを保存する対象となるプレーヤーまたはグループの識別情報を指定する DVID 型の変数。また、DVID_REMAINING を指定すると、ユーザー バッファがないすべてのプレーヤーまたはグループに対して 3D ユーザー バッファを作成できる。DVID_REMAINING を指定する場合、lpdsBufferDesc に NULL を指定し、dwPriority パラメータと dwFlags パラメータを 0 に設定する必要がある。
lpdsSourceBuffer
Microsoft® DirectPlay® Voice のメイン バッファの作成に使用する、IDirectSoundBuffer インターフェイスへのポインタ。NULL、またはユーザー作成の Microsoft DirectSound® バッファを指定できる。このメンバが NULL の場合、DirectPlay Voice がバッファを作成する。
dwPriority
ダイレクト パススルー。IDirectSoundBuffer::Play が呼び出されるとき、この値は dwPriority パラメータに渡される。詳細については、「IDirectSoundBuffer8::Play」を参照すること。lpdsMainBufferDesc が NULL の場合、このパラメータは 0 でなければならない。
dwFlags
ダイレクト パススルー。IDirectSoundBuffer::Play が呼び出されるとき、この値は dwFlags パラメータに渡される。詳細については、「IDirectSoundBuffer8::Play」を参照すること。lpdsMainBufferDesc が NULL の場合、このパラメータは 0 でなければならない。
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 オブジェクトの LockUnLockPlay の各メソッドは使用しないこと。

ここでバッファを指定した場合、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 で宣言。