如何在不使用iOS7弃用方法的情况下获取AirPlay设备名称

时间:2014-07-18 12:54:07

标签: ios ios7 airplay

我使用此处描述的方法Get name of AirPlay device using AVPlayer来检索连接的AirPlay设备的名称。

但iOS7中不推荐使用AudioSessionGetPropertykAudioSession_AudioRouteKey_Outputs。我正在寻找另一种方法来实现这一目标:)

1 个答案:

答案 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;
}