我使用此处描述的方法Get name of AirPlay device using AVPlayer来检索连接的AirPlay设备的名称。
但iOS7中不推荐使用AudioSessionGetProperty
和kAudioSession_AudioRouteKey_Outputs
。我正在寻找另一种方法来实现这一目标:)
答案 0 :(得分:2)
从iOS6开始,AudioSession向您公开currentRoute,允许检索它的端口信息以及收听audioRouteChangeNotification。 (因此您不再需要使用AudioToolbox框架中基于C的API):
NSString* airplayName = [self activeAirplayOutputRouteName];
if (airplayName) {
//airplay is active
}
(你想得到的是currentAudioRoute的portDescription):
- (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;
}