2

很抱歉问这个问题,这里再次讨论了很多次。但是没有一个答案对我有帮助。我只需要在 a 中输入一些简单的代码viewDidLoad来检查耳机是否已插入。(如果他们不是我想弹出简单的消息,但这不是我要问的怎么做。)有什么帮助吗?

4

2 回答 2

9

这应该可以实现您想要的(iOS 6+ 兼容)

- (BOOL)areHeadphonesPluggedIn {
    NSArray *availableOutputs = [[AVAudioSession sharedInstance] currentRoute].outputs;
    for (AVAudioSessionPortDescription *portDescription in availableOutputs) {
        if ([portDescription.portType isEqualToString:AVAudioSessionPortHeadphones]) {
            return YES;
        }
    }
    return NO;
}
于 2013-10-19T19:27:00.247 回答
2

这是 Gabriele Petronella 编写的代码的 Swift 1.2 版本

//This method checks if headphones are plugged in.

func areHeadphonesPluggedIn()->Bool
{
    var availableOutputs = AVAudioSession.sharedInstance().currentRoute.outputs
    for portDescription in availableOutputs
    {
        if portDescription.portType == AVAudioSessionPortHeadphones
        {
            return true
        }
    }
    return false
}
于 2015-06-17T17:37:05.140 回答