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

Ant*_*tox 9 objective-c ios avaudiosession

AVAudioSession从音乐应用程序或其他人录制带有音频播放的音频时,将停止播放.这在音频会话文档中描述:

AVAudioSessionCategoryRecord

用于录制音频; 此类别使播放音频静音.

有没有办法改变这种行为并执行以下操作之一?

1)继续播放其他应用程序的音频,并允许手机录制正在播放的音频.

2)简短录制完成后,恢复其他应用的音频.音频中断开始或结束时,应用程序可以响应通知.是否有某些特定的东西必须为其他应用程序接收这些通知?

小智 5

从24小时的勤奋搜索和零碎的工作中,这非常简单:

let session = AVAudioSession.sharedInstance()
session.setCategory(AVAudioSessionCategoryPlayAndRecord, with: [.mixWithOthers, .allowBluetoothA2DP])
Run Code Online (Sandbox Code Playgroud)

这就是任何仍在寻找如何执行此操作的人的方法。


Yau*_*nka -2

1) 不可能AVAudioSession。您所能做的就是检查[[AVAudioSession sharedInstance] isOtherAudioPlaying]并询问用户是否要停止音乐流。

2)当iPod状态改变时,应用程序无法接收任何通知,我们甚至无法观察isOtherAudioPlaying属性...我在项目中使用的解决方案:添加一个NSTimer并每秒检查一次[[AVAudioSession sharedInstance] isOtherAudioPlaying]BOOL值。