iOS音频输出仅限耳机插孔

时间:2013-06-01 04:34:26

标签: ios core-audio avaudiosession audiosession

是否可以将音频输出到iOS设备的耳机插孔而不是其他地方? (例如,不是扬声器或蓝牙)

我们正在试验一个硬件附加组件,它接收来自音频插孔的音调输入。我们可以尝试检测耳机插孔是否已连接,但是当连接了蓝牙音频输出设备时仍然会出现这种情况 - 我们不希望在用户的蓝牙耳机或扬声器中听到音调。

1 个答案:

答案 0 :(得分:6)

您需要阅读AudioSessionProgrammingGuide

您可以通过使用kAudioSessionProperty_AudioRoute属性调用AudioSessionGetProperty来获取当前音频'route'。这会为您提供一个字符串,如“耳机”或“扬声器”,并播放音频文件接收'路线'值

CFStringRef route;
UInt32 propertySize = sizeof(CFStringRef);
AudioSessionInitialize(NULL, NULL, NULL, NULL);
AudioSessionGetProperty(kAudioSessionProperty_AudioRoute, &propertySize, &route);

NSLog(@"%@ %@",route,kAudioSessionInputRoute_Headphone);
NSLog(@"%ld",CFStringGetLength(route));
if ([(__bridge NSString *)route isEqualToString:@"Headphone"])
{
    // play audio sound
}
else
{
     // not play audio sound
}

我希望它可以帮到你