Platform SDK: DirectX

キャプチャ バッファの情報

[C++]

IDirectSoundCaptureBuffer::GetCaps メソッドを使って、キャプチャ バッファのサイズを取得する。この構造体をパラメータとして渡す前に、DSCBCAPS 構造体の dwSize メンバを初期化しておかなければならない。バッファ作成時に設定された、バッファ内のデータ フォーマットの情報を取得することもできる。IDirectSoundCaptureBuffer::GetFormat メソッドを呼び出すと、このメソッドは WAVEFORMATEX 構造体を使ってフォーマット情報を返す。この構造体のメンバの情報は、「サウンド データ」を参照すること。

lpwfxFormat パラメータで NULL を指定して GetFormat メソッドを最初に呼び出すことにより、アプリケーションが WAVEFORMATEX 構造体を通して追加のフォーマット情報を入手できる点に注意すること。この場合、lpdwSizeWritten パラメータが指す DWORD が、完全なフォーマット情報を受け取るのに必要な構造体のサイズを受け取る。

キャプチャ バッファが現在行っていることを把握するには、IDirectSoundCaptureBuffer::GetStatus メソッドを呼び出す。このメソッドはフラグの組み合わせを変数 DWORD に書き込むが、そのフラグはバッファがキャプチャリングでビジーであるかどうか、ビジーの場合はループしているかどうか (つまり IDirectSoundCaptureBuffer::Start を直前に呼び出した時点で DSCBSTART_LOOPING フラグをセットしていたか) を示す。

最後に、IDirectSoundCaptureBuffer::GetCurrentPosition メソッドは、バッファ内での現在の読み込み位置とキャプチャ位置を返す。読み込み位置は、この時点でキャプチャされてバッファに置かれたデータの最後である。キャプチャ位置は、現在ハードウェアからコピーされている最中のデータ ブロックの最後である。バッファから安全にコピーできるのは読み込み位置までのデータのみである。

[Visual Basic]

DirectSoundCaptureBuffer.GetCaps メソッドを使って、バッファ能力についての情報を取得する。バッファ作成時に設定されたバッファのデータ フォーマットについての情報を取得するには、DirectSoundCaptureBuffer.GetFormat メソッドを呼び出す。

キャプチャ バッファが行っていることを把握するには、DirectSoundCaptureBuffer.GetStatus メソッドを呼び出す。このメソッドはフラグの組み合わせを返すが、そのフラグはバッファがキャプチャリングでビジーであるかどうか、ビジーの場合はループしているかどうか (つまり DirectSoundCaptureBuffer.Start を直前に呼び出した時点で DSCBSTART_LOOPING フラグをセットしていたか) を示す。

最後に、DirectSoundCaptureBuffer.GetCurrentPosition メソッドは、バッファ内での現在の読み込み位置とキャプチャ位置を返す。読み込み位置は、この時点でキャプチャされてバッファに置かれたデータの最後である。キャプチャ位置は、ハードウェアからコピーされている最中のデータ ブロックの最後である。バッファから安全にコピーできるのは読み込み位置までのデータのみである。