我有一副 WH-1000XM3 耳机,它们在 Windows 10 的声音设置中显示为两个输出音频端点:
- 耳机(高品质、高延迟)
- 耳机(低质量,低采样率,但非常低的延迟)
他们还有一个耳机麦克风输入端点。
为了在语音通话和游戏时使用耳机输出配置文件,我将我的默认输出设备和默认通信设备都设置为耳机。这给了我想要的低延迟,但代价是我接受的音频质量。这在 Windows 10 上完美运行 - 我可以通过低延迟、低质量的端点听到音频呼叫和多媒体。如果我正在进行语音通话,则可以通过耳机麦克风听到我的声音。
我已将这些耳机与运行 Windows 11 Pro 的新笔记本电脑配对,但我在声音控制面板(以及 中的高级选项mmsys.cpl
)中只看到一个输出端点——耳机,它提供立体声、高品质音频潜伏。耳机不可见,无法选择。
奇怪的是,如果我通过 Powershell 检查 PnP 子系统已知的实际音频端点,我确实看到了耳机和免提/耳机配置文件,并且它们被标记为 OK。
Get-PnpDevice -Class 'AudioEndpoint'
Status Class FriendlyName InstanceId
------ ----- ------------ ----------
Unknown AudioEndpoint Speakers (High Definition Audio Device) SWD\MMDE...
Unknown AudioEndpoint Microphone (High Definition Audio Device) SWD\MMDE...
Unknown AudioEndpoint Microphone Array (Realtek(R) Audio) SWD\MMDE...
OK AudioEndpoint Headset (WH-1000XM3) SWD\MMDE...
Unknown AudioEndpoint Speakers (High Definition Audio Device) SWD\MMDE...
OK AudioEndpoint Headset (WH-1000XM3 Hands-Free) SWD\MMDE...
OK AudioEndpoint Speakers (Realtek(R) Audio) SWD\MMDE...
Unknown AudioEndpoint Microphone (High Definition Audio Device) SWD\MMDE...
OK AudioEndpoint Headphones (WH-1000XM3) SWD\MMDE...
OK AudioEndpoint Microphone Array (Realtek(R) Audio) SWD\MMDE...
Unknown AudioEndpoint Speakers (Realtek(R) Audio) SWD\MMDE...
Unknown AudioEndpoint Microphone Array (Realtek(R) Audio) SWD\MMDE...
我如何实际使用这些配置文件?如果我开始语音通话,Windows 将在启用麦克风时自动切换到 HSP 音频输出,但无限期地进行语音通话并不是一个明智的解决方法。
使用 3.5 毫米线避免蓝牙延迟对我来说也不是一个可行的解决方法——我仍然想使用蓝牙耳机的麦克风,如果它为了通过 3.5 毫米插孔与模拟音频一起使用而断电,我不能这样做。
我是否可以在 Windows 11 上配置相同的设置以始终使用 HSP/HFP 端点,或者我是否需要某种愚蠢的解决方法,例如为了获得正确的输出配置而保持麦克风打开的自定义程序?是否有一些隐藏的注册表设置可以让我手动设置?
我找不到用户可访问的设置来解决这个问题,但我假设的解决方法确实完全解决了这个问题。
一个程序只需要打开麦克风——WSAPI 事件驱动的共享模式完美运行。剥离此样本以简单地打开设备,然后无休止地丢弃传入的缓冲区是相当简单的。如果机器进入休眠状态并备份(可能也是睡眠的情况),麦克风句柄/会话将被丢弃,但如果不想手动重新启动解决程序,它也应该很容易检测和处理。