В настоящее время я работаю с фрагментом кода, чтобы определить, подключил ли пользователь / отключил наушники от своего iPhone.Метод, который я использую для его обнаружения, показан ниже.
void audioRouteChangeListenerCallback (void *inUserData, AudioSessionPropertyID inPropertyID,UInt32 inPropertyValueSize, const void *inPropertyValue){
if (inPropertyID != kAudioSessionProperty_AudioRouteChange) return;
CFStringRef route; UInt32 routeSize = sizeof(CFStringRef);
AudioSessionGetProperty(kAudioSessionProperty_AudioRoute,&routeSize, &route);
NSString *oldroute = (NSString*)route;
NSLog(@"Audio Route changed to: %@",oldroute);
}
Моя проблема возникает, когда я отсоединяю наушники.Их подключение работает, как я и ожидал, с файлом журнала, показывающим «Аудио-маршрут изменен на: Наушники», однако, когда я отключаю, я получаю пустую строку для oldroute.Я надеялся, что это значение будет «Speaker», как говорится в документах Apple.Кто-нибудь видел это раньше?Я делаю что-то не так в получении строки oldroute?Спасибо