1

編集

NAudio ソース コードを変更し、少しデバッグした後、プロパティmixerSetControlDetailsを設定したときに呼び出される関数が を返すことがわかりました。ValueMMSYSERR_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);
4

1 に答える 1

0

mixerSetControlDetails関数はランダムに返されるようですMMSYSERR_ERROR(少なくともパターンは見つかりませんでした)。実際には新しい値が設定されますが、例外を無視するか、設定されていない場合は再度値を設定してみてください。立ち往生した動作は、このエラーとは関係のない私のプログラムに関するものでした。

于 2015-10-21T07:47:08.490 に答える