在iOS上录制audio而不停止音乐播放

使用AVAudioSession录制audio时,音乐应用程序或其他audio应用程序停止播放audio。 audio会话文档中对此进行了描述:

AVAudioSessionCategoryRecord

用于录制audio; 这个类别沉默回放audio。

有什么方法可以改变这种行为,并执行以下任一操作?

1)继续播放其他应用的audio,并允许手机录制正在播放的audio。

2)简短录制完成后恢复其他应用程序的audio。 当audio中断开始或结束时,应用程序可以响应通知。 是否有其他的应用程序接收这些通知必须做的具体事情?

1) AVAudioSession 。 您只需检查[[AVAudioSession sharedInstance] isOtherAudioPlaying]然后询问用户是否希望停止播放音乐。

2)当iPod状态改变时,应用程序不能收到任何通知,我们甚至无法观察到isOtherAudioPlaying属性…解决scheme我在我的项目上使用:添加NSTimer和一秒钟检查[[AVAudioSession sharedInstance] isOtherAudioPlaying] BOOL值。

您可以使用

OBJ-C

 [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionMixWithOthers error:nil]; 

要么

迅速

 let audioSession = AVAudioSession.sharedInstance() do { try audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord, with: AVAudioSessionCategoryOptions.mixWithOthers) } catch let error as NSError { print("audioSession error: \(error.localizedDescription)") }