2009-03-15 6 views
2

waveInで開いたデフォルトの録音デバイスの音量コントロールにアクセスするには、mixerGetLineInfomixerGetLineControls関数を使用しようとしています。私は、システム内のすべてのソースの送り先とコントロールを正常に列挙できるC#interopコードを作成しましたが、デフォルトのwaveInデバイスに関連付けられているコントロールは動作していません。誰もこれを行ういくつかのサンプルコードを持っていますか?デフォルトのwaveInデバイスのレコードレベルを設定する

答えて

1

あなたが使用できる:

int mixerId = -1; 
int inputID = MmeMixerApi.WAVE_MAPPER; // = -1 
int result = MmeMixerApi.mixerGetID(inputId, ref mixerId, MIXER_OBJECTFLAG.WAVEIN); 

デフォルトの入力と出力装置は、-1のIDを有する波マッパーを介してアクセスすることができます。 mixerGetIDは、その入力に関連付けられたミキサーIDを返します。その後、ミキサーIDを使用してコントロールを反復処理することができます。それでも正しいソースライン(マイク、ライン入力など)を見つける必要があります。このためには、MIXERLINE_COMPONENTTYPE.SRC_MICROPHONEやMIXERLINE_COMPONENTTYPE.SRC_LINEなどの特定のdwComponentTypeを持つソース行を探すことができます。

+0

どこからMmeMixerApiを入手しましたか? –

+0

MmeMixerApiは、P/Invoke MMEミキサー呼び出しをカプセル化する単なる静的クラスです。私はMmeWaveApiという名前の同様のクラスを使用します。どちらも、ネット上にあるコードと自分自身の追加と削除が混在しています。 – Han

+0

inputIDが-1のmixerGetIDを呼び出すときにNoDriverエラーが発生する –

関連する問題