Windows 8.1 WPF 应用程序 mixerSetControlDetails 返回MMSYSERR_ERROR



>Edit

修改 NAudio 源代码并稍加调试后,发现设置 Value 属性时调用的 mixerSetControlDetails 函数返回 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);

似乎 mixerSetControlDetails 函数MMSYSERR_ERROR随机返回(至少我找不到模式)。实际上,它确实设置了新值,只需忽略异常,或者如果未设置,请尝试再次设置该值。卡住的行为与我的程序有关,与此错误无关。

相关内容

  • 没有找到相关文章

最新更新