我有一个使用以下功能播放声音的模块:
let pop = SystemSoundID(1519)
AudioServicesPlaySystemSoundWithCompletion(pop, {})
在我更改音频会话配置以支持AppDelegate中的内置麦克风之前,它一直有效:
if let desc = AVAudioSession.sharedInstance().availableInputs?.first(where: { (desc) -> Bool in
return desc.portType == AVAudioSession.Port.builtInMic
}) {
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playAndRecord, options: .defaultToSpeaker)
try AVAudioSession.sharedInstance().setMode(AVAudioSession.Mode.spokenAudio)
try AVAudioSession.sharedInstance().setPreferredInput(desc)
try AVAudioSession.sharedInstance().setActive(true)
}
如果我注释了上面的代码,则音频服务系统声音已成功播放。 我不知道为什么,我想保持音频会话配置不变。