ios - 音频输出 callkit ActionSheet - 可以从代码开始吗?
问题描述
我正在寻找一种像 callkit 一样显示可用音频输出列表的方法 - 它显示带有列出设备的 ActionSheet - 查看照片(在连接蓝牙扬声器和耳机时触摸音频按钮的正常通话)。
是否有可能使用一段代码显示此操作表?现在我对枚举和显示音频输出的搜索让我枚举输入并以某种方式或用户多路由类别映射它(请参阅列出可用的输出音频目标 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:
try session.setPreferredInput(connectedHeadphones)
推荐阅读
- javascript - 钩画布的 toDataURL
- java - Java - 将泛型类型映射到所述类型的使用者
- r - 提取单元格组合而不重复索引
- frama-c - Frama-C EVA插件中“后”栏的含义和目的是什么
- javascript - 为什么无法直接在 data url 和 imgData 对象之间进行转换?
- java - DocPrintJob 无法定义正确的 mime 类型
- python - 在 Python 中连接压缩值
- libgdx - libGDX FressType 字体缺少重音字符(法语)
- sql-server - 内存表的重新编译问题
- apache-spark - 将自定义函数的输出从默认 StringType 转换为 pyspark 中的 mapType