Sr.*_*hie 2 objective-c headset ios
我知道这是一个已经问过的问题,我发现可能有重复:
...以及有关WWW的更多信息.但是我已经尝试了每个解决方案,每次我遇到问题时,可能是因为它们是旧线程并且指的是iOS 4.如何在iOS 5.0上检测到它?谢谢
小智 9
如果您对iOS 6专用解决方案没问题,Apple会添加几个新的AVAudioSession属性,让您只需几行就可以检测到音频路径(而且不使用C).
使用此方法检查耳机(或调整它以检查其他输出 - "扬声器","耳机"等):
- (BOOL)isHeadsetPluggedIn
{
// Get array of current audio outputs (there should only be one)
NSArray *outputs = [[AVAudioSession sharedInstance] currentRoute].outputs;
NSString *portName = [[outputs objectAtIndex:0] portName];
if ([portName isEqualToString:@"Headphones"]) {
return YES;
}
return NO;
}
Run Code Online (Sandbox Code Playgroud)
如果您想要被动地响应音频路由更改,可以使用新的NSNotification,AVAudioSessionRouteChangeNotification执行此操作.不幸的是,这个通知并没有告诉你新路由是什么,只是它从之前切换的路由.但是,您可以调用上述方法的一些变体来获取当前路线.