检查应用程序启动时是否插入了耳机

时间:2013-10-19 18:47:03

标签: iphone objective-c headphones

我很抱歉再次提出这个问题,这个问题已多次讨论过了。但没有一个答案对我没有帮助。我只需要在viewDidLoad中添加一些简单的代码来检查耳机是否已插入或未插入。 (如果他们不是我想要弹出简单的信息,但那不是我要问的怎么做。)任何帮助?

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:1)

以下是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
}