当用AVAudioSession
录制音频时,音乐应用程序或其他应用程序的音频回放将停止。这在音频会话文档中有描述:
AVAudioSessionCategoryRecord
用于录制音频;此类别可静音播放音频。
是否有任何方法可以更改此行为并执行下列操作之一?
1)继续播放其他应用程序的音频,并允许手机录制正在播放的音频。
2)完成一段简短的录音后,恢复其他应用程序的音频。当音频中断开始或结束时,有一些通知应用程序可以响应。对于其他应用程序接收这些通知,是否必须做一些特定的事情?
发布于 2017-03-20 21:26:26
您可以使用
Obj
[[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)")
}
发布于 2014-10-01 03:59:01
1)不可能出现AVAudioSession
。您所能做的就是检查[[AVAudioSession sharedInstance] isOtherAudioPlaying]
并询问用户他是否愿意停止音乐流。
2)当iPod状态发生变化时,应用程序无法收到任何通知,我们甚至不能观察到isOtherAudioPlaying属性.我在我的项目中使用的解决方案:添加一个NSTimer,并在sec检查[[AVAudioSession sharedInstance] isOtherAudioPlaying]
BOOL值。
https://stackoverflow.com/questions/22052026
复制相似问题