gpt4 book ai didi

ios - AudioQueueStart 在 iOS 7 的后台进程中失败并显示 -16981

转载 作者:可可西里 更新时间:2023-11-01 05:41:24 30 4
gpt4 key购买 nike

在我的 iOS 应用程序中所有以前版本的操作系统中,我们偶尔录制音频,然后休眠一段时间,然后再次录制,并永远循环( sleep 是为了保持电池)。这适用于 iOS 7,即使当应用程序处于后台时也是如此。现在,当应用程序在后台时,对 AudioQueueStart 的调用无法开始录制,并出现错误:-16981。我似乎无法在文档或 Web 上找到此错误代码,如果我将其转换为 NSError,它会显示“操作无法完成。(OSStatus 错误 -16981。)”,这是'没什么帮助。

我有一个理论,Apple 正在填补这里的漏洞;这个想法是;你为什么要从后台进程开始录制,除非你是 spy ?好吧,在用户同意(签名并付费!)的情况下,这正是我们正在做的事情。

所以;任何人都可以确认或否认这是预期的,或者我可以做些什么。这对我们的应用程序来说有点致命。我已将其作为 bug 提交给 Apple,并将尝试在此处报告进度。

更新:2013 年 10 月 3 日

虽然之前的答案似乎对这个有用了一段时间;它现在已停止使用 -12985,这是因为另一个应用程序已打开音频。这当然是我需要使用混合标志的原因。

更新:

iOS 7.0.3(及更高版本)似乎已完全解决此问题。

最佳答案

在播放不同的 Audio Session 属性后,我发现当启用 kAudioSessionProperty_OverrideCategoryMixWithOthers (TRUE) 时会发生 -16981 错误。一旦我将其设置为“0”,AudioQueueStart() 就会成功执行。因此,在开始 Audio Session 之前尝试:

UInt32 allowMixing = 0;
status = AudioSessionSetProperty (
kAudioSessionProperty_OverrideCategoryMixWithOthers,
sizeof (allowMixing),
&allowMixing);

显然,这是 iOS 7 中的行为更改。如前所述,文档未列出 -16981 错误代码。

关于ios - AudioQueueStart 在 iOS 7 的后台进程中失败并显示 -16981,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18947837/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com