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

iOS 16 Beta 5中AVAudioSession setCategory报错‘what’求助

iOS 16 Beta 5 中 AVAudioSession setCategory 报错问题解决方案

针对iOS 16 Beta 5中调用try AVAudioSession.sharedInstance().setCategory(<category>, options: .mixWithOthers)出现AVAudioSession_iOS.mm:2365 Failed to set category, error: 'what'错误且连接中断的问题,可尝试以下排查和解决步骤:

  • 验证传入的Category合法性
    确认你传入的<category>是有效的AVAudioSessionCategory枚举值(如.playback、.record等),避免使用已废弃或自定义的字符串常量。Beta 5可能对Category的校验逻辑进行了调整,某些在Beta 4中兼容的用法可能不再被允许。

  • 优化调用时机与线程
    确保setCategory调用在主线程执行,且尽量在App启动完成后(而非启动初期)进行操作。部分开发者反馈Beta 5对音频会话操作的时机要求更严格,提前调用可能触发未知错误。

  • 捕获完整错误详情
    当前报错信息过于简略,可通过扩展错误捕获逻辑获取更多细节:

    do {
        let session = AVAudioSession.sharedInstance()
        try session.setCategory(.playback, options: .mixWithOthers)
        try session.activate()
    } catch let error as NSError {
        print("音频会话设置失败:\(error.localizedDescription)")
        print("错误调试信息:\(error.debugDescription)")
    }
    

    完整的错误日志可能会揭示权限、Category冲突等隐藏问题。

  • 检查音频权限配置
    若你使用的Category涉及录音(如.record),确认Info.plist中已添加NSMicrophoneUsageDescription字段并填写合理描述;若涉及媒体库访问,需检查NSMusicLibraryUsageDescription是否配置齐全。Beta 5可能强化了权限校验,缺失权限会直接导致设置失败。

  • 临时移除.mixWithOthers选项测试
    先尝试不添加.mixWithOthers选项调用setCategory,若能成功执行,说明该选项在Beta 5中存在兼容性问题。可临时改用其他音频会话配置(如调整模式为.default),同时向苹果提交Bug反馈。

  • 向苹果提交反馈
    由于问题仅出现在Beta 5版本,大概率是系统层面的Bug。建议通过苹果Feedback Assistant提交报告,附上设备型号、iOS版本、完整代码片段及错误日志,帮助官方定位修复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 11:18:43