Ios 在设备锁定时录制音频

Ios 在设备锁定时录制音频,ios,iphone,audio,avfoundation,avaudiorecorder,Ios,Iphone,Audio,Avfoundation,Avaudiorecorder,有人知道在设备锁定在iOS上时录制音频的有效方法吗 目前我正在使用两台AvaudioRecorder,一台用来监听噪音(audioListener),另一台用来实际记录噪音(audioRecorder)。音频监听器总是在记录并获得仪表噪音水平,因为它需要记录才能获得这些水平。如果这些噪音超过阈值,则录音机将开始录制5秒钟,在AudioRecorderDiFinishRecording方法中,将每个音频文件添加到阵列中,以供以后参考。我已经将info.plist中的“应用程序不在后台运行”键设置为

有人知道在设备锁定在iOS上时录制音频的有效方法吗

目前我正在使用两台AvaudioRecorder,一台用来监听噪音(audioListener),另一台用来实际记录噪音(audioRecorder)。音频监听器总是在记录并获得仪表噪音水平,因为它需要记录才能获得这些水平。如果这些噪音超过阈值,则录音机将开始录制5秒钟,在AudioRecorderDiFinishRecording方法中,将每个音频文件添加到阵列中,以供以后参考。我已经将info.plist中的“应用程序不在后台运行”键设置为“否”,并允许音频背景模式


我还需要再做一些测试,看看当设备锁定时它是否正确录制,但我想知道是否有人知道实现这一点的其他方法?

您需要将音频类别设置为
AVAudioSessionCategoryPlayAndRecord
,以及您所做的背景音频模式


查看

您需要将音频类别设置为
音频会话类别播放和录制
,以及背景音频模式


查看

我已经这样做了,这可能与未正确保存音频文件有关。这是另一个问题我理解,我的意思是,问题可能不是音频录制,而是我如何保存数据。你知道我是否可以用这种方法在设备被锁定的情况下记录几个小时吗?你测试过吗?我会在ExtAudioFileWriteAsync中使用一些更低级的东西,比如核心音频。只需将从麦克风回调获得的缓冲区传递到ExtAudioFileWriteAsync函数。在回调中限制Objul-C或Swift调用,最好使用C或C++。问题在于我以前的做法,我依靠计时器来调用检查噪音是否超过一定音量的方法。我假设当设备被锁定时,计时器会暂停。我需要研究一下你使用核心音频的方式。我已经这样做了,可能是因为没有正确保存音频文件。这是另一个问题。我理解,我只是说问题可能不是音频录制,而是我如何保存数据。你知道我是否可以用这种方法在设备被锁定的情况下记录几个小时吗?你测试过吗?我会在ExtAudioFileWriteAsync中使用一些更低级的东西,比如核心音频。只需将从麦克风回调获得的缓冲区传递到ExtAudioFileWriteAsync函数。在回调中限制Objul-C或Swift调用,最好使用C或C++。问题在于我以前的做法,我依靠计时器来调用检查噪音是否超过一定音量的方法。我假设当设备被锁定时,计时器会暂停。我需要研究一下你使用核心音频的方式。