我正在编写一个记录音频的程序。我想允许其他应用程序(如Rdio或音乐应用程序)在录制过程中继续在后台播放。我已经能够使用MixWithOthers和DuckOthers选项使其工作。例如:
session.setCategory(AVAudioSessionCategoryPlayAndRecord, withOptions:
AVAudioSessionCategoryOptions.MixWithOthers, error:&error)
但是,如果在我激活会话时正在播放另一个应用程序,则音频会暂停一段时间。有没有办法在没有音频暂停或暂停的情况下激活和取消激活音频会话?
我用来激活会话的代码非常基本:
if !session.setActive(true, error: &error) {
println("could not make session active")
if let e = error {
println(e.localizedDescription)
}
}
通过调试器逐步调试会话,我已经验证音频是挂起的。