停止录音并继续播放音频

Stop audio recording and continue audio playback

我的应用程序同时播放音乐和麦克风录音。可以在播放开始后开始录制,也可以在播放开始前开始录制

现在我想停止录制但同时保持播放运行

我该怎么做?

我可以使用

停止录制 回放
[[AVAudioSession sharedInstance] setActive:NO error:nil];

但问题是:我只想停止录制。

我尝试使用以下代码将类别更改为 AVAudioSessionCategoryPlayback

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&error]

但这不会停止录制。

我通过显式停止所有录音 activity 解决了这个问题,根本没有触及 AVAudioSession。

以下警告

AVAudioSession.mm:623: -[AVAudioSession setActive:withOptions:error:]: Deactivating an audio session that has running I/O. All I/O should be stopped or paused prior to deactivating the audio session.

帮助我确定了问题所在。

最初忘记调用AudioUnit框架的AudioOutputUnitStop方法。因为这个录音过程仍然是 运行 并且音频会话表明。