編集
NAudio ソース コードを変更し、少しデバッグした後、プロパティmixerSetControlDetails
を設定したときに呼び出される関数が を返すことがわかりました。Value
MMSYSERR_ERROR
mixerSetControlDetails
失敗した理由についてさらに情報を取得する方法はありますか?
私は、C# で同じことを達成するための他の方法にもオープンです。
オリジナル
音声のエネルギーを計算し、NAudio を使用してこの計算値に従ってマイク ブースト レベルを設定するコードがあります。オーディオ サンプルの読み取りに問題はありませんが、マイク ブーストを設定しようとすると、プログラムが動かなくなります。
Windows 7、8、および 8.1 で問題を確認しました。この問題は、Windows 8.1 でのみ発生します。興味深いことに、Windows 8.1 の仮想マシンでプログラムを実行すると、期待どおりに動作します。これは許可の問題でしょうか?
ブースト値を設定するためのコードは次のとおりです
foreach (MixerControl mixerControl in MixerLine.Controls)
{
if (mixerControl.ControlType == MixerControlType.Volume)
{
UnsignedMixerControl volumeControl = (UnsignedMixerControl)mixerControl;
volumeControl.Value = (uint) value;
}
}
このコードで MixerLine が事前に作成されている場所。
MixerLine = new MixerLine((IntPtr) deviceID, 0, MixerFlags.WaveIn);