iOS - AudioUnitInitialize返回错误代码561017449

Chu*_*son 6 audiounit ios

我在App Store中有一个应用程序,它使用AudioUnit录制音频.

大概每周大约一次,我发现对于一些用户来说,呼叫AudioUnitInitialize失败,错误代码为561017449,也是0x21707269或"irp!".

这个错误代码是什么意思?我一直无法找到它.也:

~$ macerror 561017449
Unknown error (561017449) at /usr/bin/macerror5.16 line 40, <DATA> line 1.
Run Code Online (Sandbox Code Playgroud)

这个问题的实例很少,但到目前为止,似乎没有设备和操作系统版本的共性.

我不包括代码,因为我认为这不会有用.该代码已经在各种设备上运行.此时我最感兴趣的是学习有关此特定错误的详细信息.

谢谢!

Chu*_*son 13

这在AVAudioSession.h中定义:

AVAudioSessionErrorInsufficientPriority = '!pri', /* 0x21707269, 561017449 */
Run Code Online (Sandbox Code Playgroud)

并被描述为"该应用程序不允许设置音频类别,因为另一个应用程序(电话等)正在控制它."

  • 当您尝试在 AVAudioEngine 实例上调用“start”或“prepare”并且正在拨打电话时,可能会发生崩溃。 (2认同)
  • 在 iOS 16.1 SDK 中,AVAudioSession.h 在 `setActive` 的文档注释中的第 189-193 行说了以下内容:“当另一个应用程序正在托管呼叫(例如启动 SharePlay 活动)时,应用程序可能会激活 AVAudioSessionCategoryPlayback 会话。但是,它们不允许捕获活动呼叫的麦克风,因此尝试激活类别 AVAudioSessionCategoryRecord 或 AVAudioSessionCategoryPlayAndRecord 的会话将失败,并显示错误 AVAudioSessionErrorCodeInsufficientPriority。” —本质上,当另一个应用程序正在录制时尝试录制时,您可能会看到此错误。 (2认同)