音频管理_iOS/AirPlay 音频管理问题

最近因为远程办公变多, 经常得从手机上接团队会议. 这个时候开始意识到 iOS 的音频管理系统并不是很理想. 简单的说问题有以下几点:

  • 媒体模式下, 音量仅仅面向特定设备, 在这个基础上会覆盖对应状态铃声的音量. 最低音量即为静音. 而震动则是独立配置, 与音量配置无关.
  • 通话模式下, 发现并不能将音量降低到 0. 并且所有蓝牙耳机都会进入通话编码模式, 此模式下码率会显著下降. AirPods 2 等 AAC/Bluetooth 5.0 耳机在延迟和通话质量上会比 SBC 和较老蓝牙版本的耳机显著好一些.
  • 闹钟音量和铃声绑定(但是不适用静音锁定), 同事闹钟音量和通话一样, 都不能降低到 0
  • AirPlay 模式下, 音量为目标播放设备的输出音量. 这个地方没有太多问题. 但是对于 HomePod, 很多人抱怨这玩意在 macOS 播放视频会有明显的画音不同步. 这个原因就是 AirPlay 2 框架和系统音频框架之间区别造成的. 所以通常在 macOS 会使用 IINA 这样可以强制加入 offset 的应用, 或是用 Apple TV 这样支持 AirPlay 2 延迟侦测的设备来播放视频.
  • Google Cast 借助了系统级重载音量功能键+自己绘制音量的方式兼容了 iOS 平台.
  • 对于外部设备, 比如 3.5mm 耳机孔/lightning EarPod, 除了少数 Lightning MFi 麦克风产品, 个人目前外接 Rode RecordMicro, 默认音频输出会被绑定到那个没有播放能力的转接线上. 而若是通过 USB 转 Lightning 适配器接入 Blue Yeti 麦克风, 则同样会把输出绑定到 Blue 上...

而简单对比 Android 的音频管理, 就会发现 iOS 目前的设计非常蛋疼:

494914f38c15c9cd18ce278016211710.png

非常直观的调节音量, 告诉你了:

  • 当前播放是 Google Cast 设备, 音量键调节的正是此设备
  • 媒体音量暂时不可用, 但是可以调节
  • Ring Tone 处于静音震动模式, 所以这个状态等于 iOS 上静音键的作用

而选择高级音量设置:

d62da61d094b1c9d6909164f653dcfd9.png
  • 所有音量独立可调节
  • 通话/铃声/闹钟音量相互独立可调节

但是 Android 在外部设备这方面也有同样的毛病(甚至更严重), 比如接入 Blue Yeti, 就会当作类似外接耳机这样的设备, 直接抢占内置扬声器和麦克风(iOS 仍然只是一个选项), 同时不可以进行组合选择(比如 USB 麦克风+蓝牙耳机). 这恐怕是移动平台长期以来和桌面系统的差距之一. 也许 iOS 会利用类似 Garage Band/Logic Pro X 上的 Core Audio 框架绕过系统管理, 从而达到更低延迟, 更细致的多设备管理.

bbd61ad991b173e1fd9aa24bc9ee1440.png

32bea323051ed24b5c3ab8a8965d9582.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值