我正在寻找一种像 callkit 那样显示可用音频输出列表的方法 - 它显示包含列出的设备的 ActionSheet - 请参阅照片(连接蓝牙扬声器和耳机时触摸音频按钮的正常通话)。
是否有可能使用一段代码来显示此操作表?现在,我关于枚举和显示音频输出的搜索让我枚举输入并以某种方式或用户多路由类别映射它(请参阅 List available output audio target AVAudioSession )。也许有一些更原生/简单的方法?
最佳答案
我尝试这样做,但没有成功。 我认为最接近的解决方案是使用以下方法检测耳机是否已连接:
extension AVAudioSession {
static var connectedHeadphones: AVAudioSessionPortDescription? {
return sharedInstance().currentRoute.outputs.first(where: { $0.isHeadphones })
}
}
extension AVAudioSessionPortDescription {
var isHeadphones: Bool {
return portType == AVAudioSession.Port.headphones || portType == AVAudioSession.Port.bluetoothA2DP
}
}
然后将其设置为AVAudioSession:
尝试 session.setPreferredInput(connectedHeadphones)
关于ios - 音频输出 callkit ActionSheet - 可以从代码开始吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54130169/