2013-06-01 1 views
1

Можно ли выводить аудио только на гнездо для наушников устройства iOS и нигде? (например, нет громкоговорителей или bluetooth)Выход аудио iOS только для разъема для наушников

Мы экспериментируем на аппаратном дополнении, которое принимает входные сигналы как сигналы от аудиоразъема. Мы могли бы попытаться определить, подключен ли разъем для наушников, но он все еще оставляет случаи, когда подключены устройства вывода аудиосигнала bluetooth - мы не хотим, чтобы сигналы звучали в гарнитурах или динамиках Bluetooth.

+0

Могли бы вы достичь этого (аудиовыход только к разъему для наушников) ? Я пытаюсь достичь того же, но пока не добился успеха. – Maverick

+0

Да. Посмотрите на принятый ответ. – adib

+0

Мне нужно, чтобы направить голосовой звук iOS на наушники, даже если он не подключен. Иными словами, пока мое приложение открыто, голос поверх звука не должен поступать на динамики. Вы можете что-то сказать об этом? Принятый ответ не отвечает на мой сценарий. – Maverick

ответ

6

Вы должны прочитать AudioSessionProgrammingGuide

Вы можете получить текущий аудио «маршрут» по телефону AudioSessionGetProperty со свойством kAudioSessionProperty_AudioRoute. Это дает вам строку, например, «наушники» или «Speaker» и воспроизводить аудиофайл восприимчивым «маршрут» значение

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 
} 

Я надеюсь, что это поможет вам