我正在创建一个仅执行呼出电话的CallKit应用。
我们正在做自己的界面,而不使用内置的UI。
我需要在屏幕上放置一个扬声器按钮,该按钮将从扬声器/无扬声器模式切换。
我遵循了Apple的准则和示例CallKit代码,并且
它似乎运作良好。
我找不到有关如何在扬声器模式之间切换的更多信息。我正在使用以下功能更改音频路由。
有人有这样做的经验吗?这项工作可靠吗?
func speaker(on: Bool) {
let audioSession = AVAudioSession.sharedInstance()
do {
// not sure I need this ...
try audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord)
if on {
// does this trigger a change to the audio route?
try audioSession.overrideOutputAudioPort(.speaker)
} else {
// is this how to switch back to the phone speaker?
try audioSession.overrideOutputAudioPort(.none)
}
} catch {
// Audio session change failure
print("failed to change speaker phone")
}
}
最佳答案
您需要在do块的末尾添加以下内容:audioSession.setActive(true)