首页 > 解决方案 > 音频输出 callkit ActionSheet - 可以从代码开始吗?

问题描述

我正在寻找一种像 callkit 一样显示可用音频输出列表的方法 - 它显示带有列出设备的 ActionSheet - 查看照片(在连接蓝牙扬声器和耳机时触摸音频按钮的正常通话)。

在连接蓝牙扬声器和耳机时触摸音频按钮的正常通话

是否有可能使用一段代码显示此操作表?现在我对枚举和显示音频输出的搜索让我枚举输入并以某种方式或用户多路由类别映射它(请参阅列出可用的输出音频目标 AVAudioSession)。也许有一些更原生/简单的方法?

标签: iosswiftavaudiosession

解决方案


我试图这样做,但没有运气。我想出的最接近的解决方案是使用以下方法检测是否连接了耳机:

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)


推荐阅读