ios get airplay name

时间:2021-02-13 23:43:12

tarting from iOS7 AudioToolbox API for currentRoute becomes deprecated:

Apple instead made currentRoute API available to you in AudioSession, which allows retrieving it's port information as well as listening to audioRouteChangeNotification in a nice way:

NSString* airplayName = [self activeAirplayOutputRouteName];
if (airplayName) {
//airplay is active } [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(audioRouteHasChangedNotification:) name:AVAudioSessionRouteChangeNotification object:[AVAudioSession sharedInstance]];
 - (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;
} - (void)audioRouteHasChangedNotification:(NSNotification*)notification
{
//do something
}