【发布时间】:2014-07-18 12:54:07
【问题描述】:
我正在使用Get name of AirPlay device using AVPlayer 此处描述的方法来检索连接的 AirPlay 设备的名称。
但 AudioSessionGetProperty 和 kAudioSession_AudioRouteKey_Outputs 在 iOS7 中已被弃用。我正在寻找另一种方法来做到这一点:)
【问题讨论】:
我正在使用Get name of AirPlay device using AVPlayer 此处描述的方法来检索连接的 AirPlay 设备的名称。
但 AudioSessionGetProperty 和 kAudioSession_AudioRouteKey_Outputs 在 iOS7 中已被弃用。我正在寻找另一种方法来做到这一点:)
【问题讨论】:
从 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;
}
【讨论】: