繁体   English   中英

iOS 16 Beta 5 AVAudioSession setCategory 产生奇怪的错误“什么”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM