编辑
修改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);