使用 MPMoviePlayerController 禁用 AirPlay
Posted
技术标签:
【中文标题】使用 MPMoviePlayerController 禁用 AirPlay【英文标题】:Disable AirPlay with MPMoviePlayerController 【发布时间】:2011-10-13 05:18:11 【问题描述】:我有一个MPMoviePlayerController
的实例,它用于在 iPhone 应用程序上显示一些实时流媒体视频。这工作正常,但我希望删除所有 AirPlay 功能。
可以肯定的是,我像这样专门禁用 AirPlay:
if([self.moviePlayerController respondsToSelector:@selector(setAllowsAirPlay:)])
self.moviePlayerController.allowsAirPlay = NO;
但是,即使使用此代码,我仍然在视频控件上看到 AirPlay 图标。如果我选择此选项并选择我的 AppleTV,则仅通过 AirPlay 发送音频 - 视频将继续在应用程序中播放。如果我将allowsAirPlay
设置为YES
,视频和音频都会通过AirPlay 发送。
有人知道为什么会这样吗?这是操作系统的一项功能,允许通过 AirPlay 发送音频吗?
【问题讨论】:
你尝试设置useApplicationAudiosession = NO;
吗?
我现在 - 恐怕似乎没有任何区别。
你在设置播放器的内容URL之前设置了allowAirPlay吗?
这是一个相关问题***.com/questions/5665336/…
不,因为我正在使用 initWithContentURL 方法来初始化 MPMoviePlayerController。我想我可以试试?
【参考方案1】:
事实证明,AirPlay 图标仍然可见(并且应该保持可见),因此可以将音频路由到任何合适的设备,例如。蓝牙耳机。尝试隐藏图标被认为是不好的做法。
【讨论】:
很老的问题;但是您是否有机会获得支持此功能的 Apple 文档的链接? 抱歉,不,我实际上在他们的一次技术讲座中从一位 Apple 工程师那里得到了答案。如果你从逻辑上考虑它是有道理的。那些想要使用蓝牙耳机或扬声器的人应该始终能够使用它们,因为它们可能有听力障碍等。 谢谢。我认为这是有道理的,只是担心内容许可。 @Craig - 对不起,老问题等等。你有没有设法找到任何文件?我即将开始同样的挑战,即使是 WWDC 参考也会很好:)【参考方案2】:我知道这是一个老问题,但也许这对其他人有帮助。 苹果有以下api来隐藏路由按钮(AirPlay)
@property (nonatomic) BOOL showsRouteButton NS_AVAILABLE_IOS(4_2); // Default is YES.
希望这对任何人都有帮助。
【讨论】:
【参考方案3】:@Philip K,您的提示几乎为我解决了这个问题,调试了一些四年前的代码。 showsRouteButton 不是 MPMoviePlayerController 上的属性,我尝试设置:
myMPMoviePlayer.allowsAirPlay = NO;
但这没有任何作用......
我们正在为我们的视频播放器使用自定义控件,发现路由按钮是 MPVolumeView 的一部分,您的技巧适用于那里:
MPVolumeView * vView = [[MPVolumeView alloc] initWithFrame: bounds];
vView.showsRouteButton = NO;
宾果!谢谢。
【讨论】:
以上是关于使用 MPMoviePlayerController 禁用 AirPlay的主要内容,如果未能解决你的问题,请参考以下文章
在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?