iOS:如何检查扬声器是否打开

时间:2018-08-09 05:36:10

标签: ios objective-c swift avfoundation

我使用AVAudioSession的{​​{1}}方法在iOS扬声器中播放声音。 overrideOutputAudioPort

我们如何检查输出的音频是否被扬声器取代,换句话说,声音是否由扬声器播放?

1 个答案:

答案 0 :(得分:2)

您可以使用currentRoute对此进行检查,请考虑以下代码:

let currentRoute = AVAudioSession.sharedInstance().currentRoute

    for output in currentRoute.outputs {

        switch output.portType {

        case AVAudioSessionPortBuiltInSpeaker:
            print("Speaker is on.")
        default:
            break
        }
    }

您可以参考Apple Doc以获得更多信息。

原始帖子为here。但是它与if一起检查,但根据我的说法,switch更好用。

您可以检测到苹果文档中提到的其他输出。