[英]iOS 16 Beta 5 AVAudioSession setCategory produces strange error 'what'
最近安装 iOS 16 beta 5 后,我们在try AVAudioSession.sharedInstance().setCategory(<category>, options: .mixWithOthers)
时遇到问题,我们收到错误并失去连接。
这是错误:
AVAudioSession_iOS.mm:2365 Failed to set category, error: 'what'
没有关于此错误的其他信息。 任何帮助将不胜感激。
仅供参考:这仅在 iOS Beta 5 中才开始出现,并且之前在 iOS Beta 4 中有效。
我们刚刚在 iOS 16.1 (20B82) 上点击了这个。 我们最初将类别设置为.playback,然后在需要录制时将其更改为.playAndRecord。 当我们试图将其改回 .playback 时,我们得到了错误。
我发现audioSession.setActive(false)
在切换类别之前,然后audioSession.setActive(true)
修复了错误。
您的类别可能是错误的。 来自.mixWithOthers
的文档:
只有当音频 session 类别是 playAndRecord、playback 或 multiRoute 时,您才能显式设置此选项。 如果将音频 session 类别设置为环境,则 session 会自动设置此选项。 同样,设置duckOthers 或interruptSpokenAudioAndMixWithOthers 选项也会启用此选项。
我希望您的类别不是 playAndRecord、播放或多路由。 许多 AVAudioSession 配置具有非显而易见的要求,这些要求可能会或可能不会在特定版本的操作系统中强制执行。 我强烈建议阅读您调用的每个 AVAudioSession 方法和使用的每个常量的文档。 音频框架充满了不完全按照它们的名字所暗示的东西。
'what'
是一个4 字符代码(将 32 位 integer 表示为“类似字符串的东西”的旧方法)。 这意味着 AVAudioSessionErrorCodeUnspecified(参见AudioSessionTypes.h header。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.