我正在创建一个仅执行出站调用的 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 block 末尾添加以下内容:audioSession.setActive(true)
关于ios - 使用 CallKit 切换扬声器和从扬声器切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44420009/