Microsoft DirectX 8.0 (C++) |
サウンドのキャプチャは、次のステップで構成される。
ロックを試みる部分が、キャプチャに使われようとしているメモリ部分と重なっていないことを確認するには、最初に IDirectSoundCaptureBuffer8::GetCurrentPosition を呼び出して現在の読み込みカーソルの位置を取得する。読み込みカーソルについては、「キャプチャ バッファの情報」を参照すること。
Lock メソッドのパラメータとして、読み込みたいメモリ ブロックのサイズとオフセットを渡す。このメソッドは、メモリ ブロック開始位置のアドレスへのポインタと、ブロックのサイズを返す。ブロックがバッファの最後から最初へラップ アラウンドしている (先頭へ戻っている) 場合、ブロックのセクションごとに 1 つ、合計 2 つのポインタが返される。バッファのロック部分がラップ アラウンドしていない場合は、2 番目のポインタは NULL である。
通常、キャプチャ カーソルがバッファの最後に達すると、バッファはキャプチャリングを自動的に停止する。しかし、IDirectSoundCaptureBuffer8::Start メソッドに渡す dwFlags パラメータで DSCBSTART_LOOPING フラグを設定した場合は、アプリケーションが IDirectSoundCaptureBuffer8::Stop メソッドを呼び出すまでキャプチャは続行される。