如何在不使用 iOS7 弃用方法的情况下获取 AirPlay 设备名称
Posted
技术标签:
【中文标题】如何在不使用 iOS7 弃用方法的情况下获取 AirPlay 设备名称【英文标题】:How to get the AirPlay device name without using iOS7 deprecated methods 【发布时间】:2014-07-18 12:54:07 【问题描述】:我正在使用Get name of AirPlay device using AVPlayer 此处描述的方法来检索连接的 AirPlay 设备的名称。
但 AudiosessionGetProperty
和 kAudioSession_AudioRouteKey_Outputs
在 iOS7 中已被弃用。我正在寻找另一种方法来做到这一点:)
【问题讨论】:
【参考方案1】:从 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;
【讨论】:
以上是关于如何在不使用 iOS7 弃用方法的情况下获取 AirPlay 设备名称的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用 iOS 中的 UITableViewDelegate 方法的情况下获取选择的 UITableViewCell
如何在不使用已弃用的类的情况下编写 Hadoop map reduce 作业?