[macOS] MacOS 微信输入法语音输入 Bug 导致 AirPods 音质降级

这两天发现, AirPods 的单击和双击事件无法控制 MacBook 上面的歌曲了,双击会有登登的错误声。 但是连接手机,响应是正常的。通过 AI 帮忙诊断,定位到了原因。直接说一下 根因 : AirPods 支持两种蓝牙模式:“高质量媒体播放模式( A2DP )”和“通话模式”( HFP 协议)...
[macOS] MacOS 微信输入法语音输入 Bug 导致 AirPods 音质降级
[macOS] MacOS 微信输入法语音输入 Bug 导致 AirPods 音质降级

这两天发现,AirPods 的单击和双击事件无法控制 MacBook 上面的歌曲了,双击会有登登的错误声。但是连接手机,响应是正常的。通过 AI 帮忙诊断,定位到了原因。直接说一下根因

  1. AirPods 支持两种蓝牙模式:“高质量媒体播放模式( A2DP )”和“通话模式”( HFP 协议)
    1. 从 A2DP 切换成 HFP ,音量会降低,音质会变差。一般需要使用到麦克风,比如打电话或者呼叫 Siri 时会触发这个切换。
  2. 微信输入法为了保证按下快捷键时“语音输入”能够瞬间启动、不丢失开头的几个字,可能采用了这种策略:只要它在后台运行,就会持续占着系统的麦克风设备,让麦克风随时处于“通电待命”状态。实测平时不会占用麦克风,但是只要用快捷键触发了微信输入法的语音输入功能,就会一直占用麦克风,将 AirPods 变成“通话模式”。当我双击耳机试图切歌,耳机认为我在试图“挂断电话”。Mac 发现当前根本没有活跃的电话通话,于是丢弃指令,发出“登登”的报错音。

以前也用了微信输入法这个功能,但是没发现这个问题,可能是最近升级版本,代码有变更。

而且,这个问题很难直观发现。

首先,Airpods 连接 MacBook 后,MacBook 会自动将 AirPods 设为音频的输入和输出设备。但只要没有用 AirPods 打电话,系统会智能地保持为“高质量媒体播放模式( A2DP )”。

第二,“系统设置”面板有观测者效应,在 macOS 中有一个非常违反直觉的设定:只要你打开了“系统设置”中的“声音 - 输入”面板,系统就会立刻激活当前选中设备的麦克风。因为系统需要实时监听麦克风的声音,来驱动输入列表下方的“输入音量”跳动条。如果你为了检查 AirPods 是否被选为了输入源,而一直将这个设置窗口开在后台,那么 AirPods 的麦克风就会被一直强行开启。

第三,虽然如果有程序占用麦克风,系统状态栏会显示橙色麦克风圆点的 UI 指示。但是,输入法属于系统底层的辅助功能服务,它在底层维持麦克风连接的动作,绕过了 macOS 状态栏那个橙色麦克风圆点的 UI 指示。

微信输入法刚出语音输入的功能的时候,就出过低级的问题,就是哪怕没有开启语音输入,不绑定快捷键,按 Fn 键盘也会全局显示微信输入法的语音输入提示文本,比较恶心,好在后面升级版本后修复了。没想到现在又出这个问题。

来源: v2ex查看原文