gpt4 book ai didi

ios - iOS中的后台录音

转载 作者:行者123 更新时间:2023-12-01 18:03:11 41 4
gpt4 key购买 nike

我已经广泛搜索了有关如何在后台录制音频的文档,并得出结论,在 plist 文件中指定“音频”可能有效。但是,由于 iOS 4 会在内存不足时终止后台应用程序,因此我们还必须采取一些措施来减少在过渡到后台时的内存使用量。我们如何减少内存使用量?

另外,有人知道在iOS上录制音频的可靠方法吗?

我取消选中 Info.plist 文件中“应用程序不在后台运行”的框,并添加了

<key> UIBackgroundModes </ key> < array> < string> audio</ string></ array>

Info.plist .但是,只要我按下“HOME”按钮,录制就会停止。

我们实现了哪些回调来知道应用程序已经进入后台?
请指教。

最佳答案

以防万一其他人在这里寻找答案,我通过将 UIBackgroundModes 数组添加到 plist 并添加“音频”作为第 0 项来让我的工作。

我在退出时释放了所有内存/ Controller ,就像你通过退出应用程序一样,所以剩下的就是应用程序使用的缓冲区(我分配了大约 1Mb 的空间,这让我有点紧张,但它似乎奏效了!)我想降低保真度也会有所帮助,但它似乎可以正常工作。

在我的核心音频设置中,我必须将缓冲区大小从 1024 更改为 4096,或者明确设置缓冲区大小……我选择了后者,因为延迟是一个问题。

NSTimeInterval iobuffersize = (float)1024.0f/SAMPLE_RATE);
sizeofdata = sizeof(iobuffersize);
AudioSessionSetProperty(kAudioSessionProperty_PreferredHardwareIOBufferDuration, &sizeofdata, &iobuffersize);

我还必须确保它不会通过不启用“不在后台运行”选项而在退出时杀死应用程序,但是无论如何默认情况下这应该是关闭的。

所以我想我回答这个问题是为了让其他人放心,毕竟它确实可以在没有太多设置的情况下工作。

但是,我在蓝牙设置方面遇到了问题,我猜这是因为缓冲区大小再次发生变化,但无法弄清楚这一点……通过recordingCallback呈现数据时,只需得到-50 =无效属性警告。我猜这是频率/样本大小,但谁知道......稍后再看,但似乎背景现在可以工作了。

关于ios - iOS中的后台录音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5024999/

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