Windows 8.1 WPF 应用程序 mixerSetControlDetails returns MMSYSERR_ERROR
Windows 8.1 WPF application mixerSetControlDetails returns MMSYSERR_ERROR
编辑
修改NAudio源码,稍加调试后,发现设置Value
、属性、returns时调用的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
函数 returns MMSYSERR_ERROR
是随机的(至少我找不到规律)。实际上它确实设置了新值,只是忽略异常,或者如果它没有设置,请尝试再次设置该值。卡住的行为与我的程序有关,与此错误无关。
编辑
修改NAudio源码,稍加调试后,发现设置Value
、属性、returns时调用的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
函数 returns MMSYSERR_ERROR
是随机的(至少我找不到规律)。实际上它确实设置了新值,只是忽略异常,或者如果它没有设置,请尝试再次设置该值。卡住的行为与我的程序有关,与此错误无关。