在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)") }