You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AVRoutePickerView显示异常求助:重复出现iPhone选项

AVRoutePickerView 重复显示“iPhone”选项问题排查与解决

AVRoutePickerView显示两个iPhone选项

这不是AVRoutePickerView的预期行为,属于iOS AVFoundation框架在路由切换流程中的偶现bug,通常是系统切换路由时未正确清理旧路由缓存导致的。

以下是可行的解决方案:

  • 手动刷新路由列表:在切换回iPhone路由后,调用AVAudioSession.sharedInstance().refreshRoute()方法,强制系统重新扫描并更新可用输出设备列表。
  • 重置PickerView实例:如果路由刷新无效,可尝试将AVRoutePickerView从视图层级移除后重新添加,或者调用setNeedsLayout() + layoutIfNeeded()触发UI强制刷新。
  • 监听路由变化做后续处理:注册AVAudioSessionRouteChangeNotification通知,在路由切换完成后延迟执行刷新操作,避免系统缓存未及时更新的问题,示例代码:
NotificationCenter.default.addObserver(forName: AVAudioSession.routeChangeNotification, object: nil, queue: .main) { [weak self] _ in
    guard let self = self else { return }
    DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
        try? AVAudioSession.sharedInstance().refreshRoute()
        self.routePickerView.setNeedsLayout()
        self.routePickerView.layoutIfNeeded()
    }
}
  • 核对音频会话配置:确认音频会话类别(如.playback)和模式设置正确,错误的配置可能导致系统对输出设备的识别出现异常。

内容的提问来源于stack exchange,提问作者Kamal Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 18:42:03