是否有任何公共 api 来检测可用的 AirPlay
Posted
技术标签:
【中文标题】是否有任何公共 api 来检测可用的 AirPlay【英文标题】:Is there any public api to detect AirPlay available or not 【发布时间】:2016-06-09 16:42:44 【问题描述】:我已实现 MPVolumeView 以显示 Airplay 选项,但如果 Airplay 选项/源不再可用,我不知道如何隐藏 MPVolumeView。
是否有任何可以检测 AirPlay 选项/来源的公共 API 可用或不可用。这样该应用程序就可以隐藏/显示播放选项。
注意:我使用的是自定义播放器,而不是默认的 MPMoviePlayerController
谢谢!
【问题讨论】:
【参考方案1】:我看到了两种可行的方法:
-
将 MPVolumeView 的 showsVolumeSlider 设置为 NO,AirPlay 路由按钮选择器“...仅在有可用的 AirPlay 输出设备时可见。”
来源:https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/AirPlayGuide/EnrichYourAppforAirPlay/EnrichYourAppforAirPlay.html
为 MPVolumeViewWirelessRoutesAvailableDidChangeNotification 添加观察者并隐藏或删除您的子视图。
- (void)viewWillAppear:(BOOL)animated
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleWirelessRoutesDidChange:)
name:MPVolumeViewWirelessRoutesAvailableDidChangeNotification object:nil];
- (void)viewWillDisappear:(BOOL)animated
[[NSNotificationCenter defaultCenter] removeObserver:self];
- (void)handleWirelessRoutesDidChange:(NSNotification *)notification
NSLog(@"Wireless routes did change: %@", notification);
// Hide or remove your MPVolumeView
【讨论】:
感谢@Brady White 提供此信息,但如果我记录通知(设备已连接或已断开连接),则此信息显示 NSConcreteNotification 0x13c5dccf0 name = MPVolumeViewWirelessRoutesAvailableDidChangeNotification;对象 =除了正确的响应 MPVolumeViewWirelessRoutesAvailableDidChangeNotification
它已被弃用 AVRouteDetectorMultipleRoutesDetectedDidChangeNotification
【讨论】:
以上是关于是否有任何公共 api 来检测可用的 AirPlay的主要内容,如果未能解决你的问题,请参考以下文章