Как получить имя устройства AirPlay без использования устаревших методов iOS7

Я использую метод, описанный здесь AVPlayer для получения имени подключенного устройства AirPlay.

Но AudioSessionGetProperty и kAudioSession_AudioRouteKey_Outputs устарели в iOS7. Я ищу альтернативный метод сделать это :)


person flopr    schedule 18.07.2014    source источник


Ответы (1)


Начиная с iOS6 AudioSession предоставляет вам currentRoute, что позволяет получать информацию о его порте, а также прослушивать audioRouteChangeNotification. (поэтому вам больше не нужно использовать API на основе C из среды AudioToolbox):

NSString* airplayName = [self activeAirplayOutputRouteName];
if (airplayName) {
    //airplay is active

}

(то, что вы хотите получить, это portDescription currentAudioRoute):

- (NSString*)activeAirplayOutputRouteName
{
    AVAudioSession* audioSession = [AVAudioSession sharedInstance];
    AVAudioSessionRouteDescription* currentRoute = audioSession.currentRoute;
    for (AVAudioSessionPortDescription* outputPort in currentRoute.outputs){
        if ([outputPort.portType isEqualToString:AVAudioSessionPortAirPlay])
            return outputPort.portName;
    }

    return nil;
}
person ambientlight    schedule 28.07.2014