オーディオ キャプチャのプロパティの設定
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
オーディオ キャプチャ フィルターの各入力ピンは、 IAMAudioInputMixer インターフェイスを公開します。 このインターフェイスを使用して、ピンの IAMAudioInputMixer::p ut_Enable メソッドを呼び出して、特定の入力を有効または無効にします。 また、このインターフェイスを使用して、ベース、トレブル、ボリューム レベルなどの入力のプロパティを設定します。 複数の入力を一度にキャプチャする場合は、フィルター自体の IAMAudioInputMixer インターフェイスを使用して、全体的なベース、トレブル、ボリューム レベルを制御できます。
キャプチャに使用できるサンプリング レートとオーディオ形式は、ドライバーによって決まります。 オーディオ キャプチャ フィルターの出力ピンの IAMStreamConfig インターフェイスを使用して、使用可能なサンプリング レートと形式を列挙し、目的の形式を設定します。 フィルターは、出力ピンのメディアの種類を受け入れる任意のフィルターにダウンストリームに接続できます。
オーディオ キャプチャ フィルターでは、 IAMBufferNegotiation インターフェイスも公開されます。 このインターフェイスは、オーディオ プレビューの待機時間を制御するのに役立ちます。 既定では、オーディオ キャプチャ フィルターでは 5 秒のバッファー サイズが使用されます。 このバッファー サイズはキャプチャに最適ですが、プレビューの遅延は 5 分の 1 になります。 待機時間を短縮するには、オーディオ キャプチャ フィルターの出力ピンを接続する前に 、IAMBufferNegotiation::SuggestAllocatorProperties メソッドを呼び出します。 このメソッドは、 ALLOCATOR_PROPERTIES 構造体へのポインターを受け取ります。 cbBuffer メンバーを使用して、バッファー サイズをバイト単位で指定します。 通常、80 ミリ秒のバッファーは安全ですが、30 ミリ秒または 40 ミリ秒のバッファーで十分な場合があります。 バッファーが小さすぎると、音質が低下します。