如何检测音频插孔是否插入我的iPhone/iPad?

Har*_*ala 0 iphone ios ios5 ios6.1 ios7

我想在我的iPhone/iPad设备中检测到插入或未插入的音频.
我已经尝试了很多代码,就像在StackOverflow上可用的C函数一样,但它不起作用
告诉我哪些代码与iOS 5.0到7兼容

如果有任何教程/代码?然后告诉我

Har*_*ala 6

经过大量谷歌搜索,我找到了检测音频杰克的最佳和简单的解决方案

首先在代码中添加以下方法

- (BOOL)areHeadphonesPluggedIn {
    NSArray *availableOutputs = [[AVAudioSession sharedInstance] currentRoute].outputs;
    for (AVAudioSessionPortDescription *portDescription in availableOutputs) {
        NSLog(@"%@",portDescription.portType);
        if ([portDescription.portType isEqualToString:AVAudioSessionPortHeadphones]) {
            return YES;
        }
    }
    return NO;
}
Run Code Online (Sandbox Code Playgroud)

然后测试它

if ([self areHeadphonesPluggedIn] == TRUE) {
    NSLog(@"Device Detetcted.  Headphone PluggedIn");
}
else {
    NSLog(@"Device Not Detetcted.  Headphone PluggedOut");
}
Run Code Online (Sandbox Code Playgroud)

非常简单!