Enhance your app's audio experience with AirPods
Media & Web 进阶 20m

用 AirPods 增强应用的音频体验

Enhance your app's audio experience with AirPods

2023年6月5日

在 Apple 官方观看视频

一句话判断

iOS 17 和 macOS 14 为 AirPods 带来了三项面向开发者的新能力——自动设备切换的可感知性、AirPods 按键静音/取消静音回调、以及个性化空间音频(Personalized Spatial Audio)的进一步优化。

这场 Session 讲了什么

Session 介绍了 AirPods 在 iOS 17 和 macOS 14 中的新特性及其对开发者的影响。

自动设备切换的优化。当用户戴着 AirPods 从 iPhone 切换到 Mac 时(比如接听 Mac 上的视频会议),系统会显示 “AirPods Connected” 横幅,确认连接已完成。音乐会在切换时自动暂停,会议音频从 AirPods 播放。这个流程对开发者来说是透明的,但你的 App 可以通过 AVAudioSession 的路由变更通知来响应。

AirPods 按键静音。用户按下 AirPods 杆部可以静音/取消静音会议通话。这个操作会在屏幕上显示麦克风状态横幅和音频提示。开发者可以通过 AVAudioSession 的 isInputMuted 属性监听静音状态变化,或者在媒体会话中处理 Mute 命令。

个性化空间音频。iOS 16 引入的个性化空间音频在 iOS 17 中进一步优化。用户的个性化配置通过 iCloud 同步到所有设备。如果你的 App 使用 AVFoundation 的空间音频能力,用户会自动获得个性化体验。

值得深挖的点

静音回调的实现方式:AirPods 静音键触发的是系统的音频路由变更。你的 App 需要监听 AVAudioSession.isInputMuted 变化或 MPRemoteCommandCenter 的 muteCommand 来响应。不处理的话,系统会自动切换麦克风状态,但你的 App UI 可能不会同步更新。

跨设备场景的音频会话管理:当 AirPods 从 iPhone 切换到 Mac 时,iPhone 端的音频会话会被中断。你的 App 需要正确处理 AVAudioSessionInterruptionNotification,在音频恢复时无缝继续播放。

空间音频对 App 的要求:如果你的内容使用多声道或 Dolby Atmos 编码,AVFoundation 会自动应用空间音频渲染。不需要额外 API 调用。

代码片段

监听 AirPods 静音状态变化:

import AVFoundation

// 监听静音状态变化
NotificationCenter.default.addObserver(
    forName: AVAudioSession.isInputMutedChangeNotification,
    object: nil,
    queue: .main
) { notification in
    // 获取当前静音状态
    let isMuted = AVAudioSession.sharedInstance().isInputMuted
    // 更新 UI 中的麦克风状态指示器
    updateMuteButton(isMuted: isMuted)
}

// 或者通过 MPRemoteCommandCenter 处理
import MediaPlayer

let commandCenter = MPRemoteCommandCenter.shared()
commandCenter.muteCommand.addTarget { event in
    // 用户按下了 AirPods 静音键
    toggleMute()
    return .success
}

最佳实践

  • 监听 isInputMutedChangeNotification 确保 App UI 与实际静音状态同步
  • 正确处理音频会话中断和恢复,确保跨设备切换时体验无缝
  • 使用多声道/杜比全景声编码的内容自动获得空间音频增强
  • 不要假设音频输出设备始终是 AirPods——检查 currentRoute 获取实际设备
  • 在通话类 App 中显示麦克风状态指示器,让用户知道静音操作已生效

还有什么值得关注

  • 个性化空间音频的校准流程和用户隐私
  • 第三方耳机对静音按键和空间音频的支持情况
  • macOS 上 AirPods 自动切换的延迟和可靠性
  • 蓝牙带宽对空间音频质量的影响
WWDC 2023