有很多文章介绍如何通过以下方式检测麦克风是否连接到 iPod touch G2:音频会话获取属性 / kAudioSessionProperty_AudioInputAvailable,但我还没有看到任何与检测连接到 iPod touch G1 的耳机有关的文章。
回顾:
iPod touch G2 硬件与 iPod touch G1 硬件在以下方面有所不同:
- iPod touch G2 有内置扬声器
- iPod touch G2 能够使用耳机端口上的麦克风
我有一个需要播放声音才能发挥作用的应用程序,我希望能有一个检测器,显示该应用程序在连接一些耳机后很有用。
我的初步试验表明 AudioSession API(特别是音频会话获取属性与kAudioSessionProperty_AudioRoute常量)始终报告“耳机”,即使耳机未连接到 iPod touch G1。
我错过了什么吗?我的 AudioSession 调用是否有交叉连接?如果有人在 iPod touch G1 上尝试过此操作并得到不同的结果?是否有另一种方法可以通过 AudioSession API 进行编织并获得我想要的东西?
这完全是针对 iPhone OS 3.0 和真实 iPod touch G1 硬件上的 iPhone OS 3.0 SDK。
提前致谢,
——巴特加尔
你可以用这个方法轻松得到:
- (BOOL)isHeadsetPluggedIn {
UInt32 routeSize = sizeof (CFStringRef);
CFStringRef route;
OSStatus error = AudioSessionGetProperty (kAudioSessionProperty_AudioRoute,
&routeSize,
&route);
if (!error && (route != NULL) && ([route isEqual:@"HeadsetInOut"])) {
return YES;
}
return NO;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)