Platform SDK: DirectX |
ここでは、C および C++ でのアプリケーション開発について説明する。Visual Basic については、「DirectSound Visual Basic チュートリアル」を参照すること。
DirectSoundCapture を作成した後で、ユーザーのデバイスがサポートしているウェーブ フォーマットを選択すべきである。これを行う 1 つの方法は、最も上のフォーマットから始めて、作成メソッドが成功するまで、各フォーマットのキャプチャ バッファを順に作成することである。(さまざまなフォーマットを順に作成する方法の例は、サンプル プログラム Fdfilter 内の Fdaudio.cpp を参照すること。) このチュートリアルでは単純に、デバイスの能力をチェックして、デフォルトの 16 ビット フォーマット (WAVEFORMATEX 構造体の宣言により定義されている) がサポートされているかどうかをチェックする。サポートされていない場合、すべてのデバイスがサポートしている 8 ビット フォーマットを選択する。
次のコードは、InitDSoundCapture 関数から抜粋したものである。
DSCCAPS dsccaps; dsccaps.dwSize = sizeof(DSCCAPS); if FAILED(IDirectSoundCapture_GetCaps(lpdsc, &dsccaps)) return FALSE; if ((dsccaps.dwFormats & WAVE_FORMAT_2M16) == 0) { wfx.nSamplesPerSec = 11025; wfx.nAvgBytesPerSec = 11025; wfx.nBlockAlign = 1; wfx.wBitsPerSample = 8; }
アプリケーションで DirectSound の再生も利用している場合は、プライマリ バッファのフォーマットと互換性のあるキャプチャ フォーマットを選択しなければならない。詳細については、次の「ステップ 3 : キャプチャ バッファの作成」を参照すること。