ISimpleAudioVolume的GetMute/SetMute无法更新状态问题排查
问题描述
通过ISimpleAudioVolume调用GetMute/SetMute时出现异常:
GetMute仅能读取初始未静音状态,调用SetMute(false)或手动静音后,状态始终无更新;- 排查发现音量显示固定为100%,与实际状态不符;
- 设备ID开头为大量0,设备状态为非活动;
AudioSessionControl无名称,会话处于非活动状态。
用户提供的初始化代码片段:
check(CoInitialize(NULL)); check(CoCreateInstance(__uuidof(MMDeviceEnumerator), nullptr, CLSCTX_INPROC_SERVER, __uuidof(IMMDeviceEnumerator), (LPVOID*)&m_deviceEnumerator)); check(m_deviceEnumerator->GetDefaultAudioEndpoint(eRender, eConsole, &m_device));
附MainVolumeControl.h、MainVolumeControl.cpp、Main.cpp完整代码,程序运行输出显示静音状态始终为0,切换操作后无任何变化。
解决方案
问题根源是调用GetMute/SetMute时错误引用了变量指针而非变量本身,导致状态读取和设置未生效。感谢@RomanR. 的排查思路。
内容的提问来源于stack exchange,提问作者Open-Analysis
相关产品推荐
相关产品推荐

