gpt4 book ai didi

iPhone AVAudioRecorder 进入后台后暂停问题

转载 作者:行者123 更新时间:2023-12-03 20:25:52 27 4
gpt4 key购买 nike

我在进入后台后暂停 AVAudioRecorder 时遇到问题。基本上,它是这样的(_recorder 是我的 AVAudioRecorder 实例):

  1. 开始录制:

    [_recorder record];
  2. 按设备上的主页按钮。

  3. 因为我已经设置了观察者来通知这种情况(在 viewDidLoad 中),所以我的自定义方法 applicationDidEnterBackground 会触发。
  4. 在 applicationDidEnterBackground 中我这样做:

    [_recorder pause];
  5. 现在,当我点击应用程序图标时,将应用程序带到前台,立即连续录制,无需执行任何操作。这更奇怪,因为检查属性:

    _recorder.recording == YES

返回NO。

我有一个函数,由 NSTimer 每 0.1 秒调用一次(以刷新 UI 等),在该函数中我有这个:

if(_recorder.recording) {
NSLog(@"recording");
}
else {
NSLog(@"not recording");
NSLog(@"time: %f", _recorder.currentTime);
}

它在控制台上打印:

    ...
not recording
time: 9.404082
not recording
not recording
time: 9.473197
not recording
time: 9.531179
not recording
time: 9.629206
not recording
time: 9.728435
...

因此,如您所见,录音机的 currentTime 一直在增加,并且正在录制音频。

知道如何解决这个问题吗?

最佳答案

您应该添加以下代码:

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

到Info.plist。这将导致后台模式响应管理 Audio Session ,因此您可以手动暂停和恢复录制。

关于iPhone AVAudioRecorder 进入后台后暂停问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6613957/

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