2013-10-19 76 views
2

我很抱歉問這個問題,這裏再次討論這個問題很多次。但是沒有一個答案對我沒有幫助。我需要的只是在viewDidLoad中添加一些簡單的代碼,以檢查耳機是否插入或未插入。 (如果他們不是,我想彈出簡單的信息,但那不是我要求怎麼做的。)任何幫助?檢查應用程序啓動時是否插入了耳機

+0

這是一個很大的問題!感謝提問,瞭解答案很有意思。 – hybridcattt

回答

9

這應該實現你想要的(6+的iOS兼容)

- (BOOL)areHeadphonesPluggedIn { 
    NSArray *availableOutputs = [[AVAudioSession sharedInstance] currentRoute].outputs; 
    for (AVAudioSessionPortDescription *portDescription in availableOutputs) { 
     if ([portDescription.portType isEqualToString:AVAudioSessionPortHeadphones]) { 
      return YES; 
     } 
    } 
    return NO; 
} 
+0

工作很好!謝謝。無論如何,有沒有其他解決方案適用於較老的iOS? – TomasJ

+0

我還沒有嘗試過,但有幾個關於它的線程。這是一個例子:http://stackoverflow.com/questions/10685313/detecting-if-headset-are-plugged-into-ios-device –

+0

謝謝,這適用於iOS9。有很多老字符串討論這個主題,但他們似乎過時了。 – BenHedges

1

這裏是雨燕1.2版本的代碼由加布裏埃爾Petronella書面

//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 
} 
相關問題