使用MPMoviePlayerController禁用AirPlay

我有一个MPMoviePlayerController的实例,用于在iPhone应用程序上显示一些实时stream式video。 这工作正常,但是我希望删除所有的AirPlayfunction。

可以肯定的是,我专门禁用了AirPlay,如下所示:

 if([self.moviePlayerController respondsToSelector:@selector(setAllowsAirPlay:)]) { self.moviePlayerController.allowsAirPlay = NO; } 

但是,即使使用此代码,我仍然可以看到video控件上的AirPlay图标。 如果我select这个,并select我的AppleTV,只有audio通过AirPlay发送 – video继续在应用程序内播放。 如果我将allowsAirPlay设置为YES ,则通过AirPlay发送video和audio。

有谁知道为什么发生这种情况? 这是操作系统的一个function,允许通过AirPlay发送audio吗?

事实certificate,AirPlay图标仍然可见(应保持可见),以便audio可以路由到任何合适的设备,例如。 一个蓝牙耳机。 试图隐藏图标被认为是不好的做法。

我知道它的一个老问题,但也许这将帮助别人。
苹果有以下API隐藏路由button(AirPlay)

 @property (nonatomic) BOOL showsRouteButton NS_AVAILABLE_IOS(4_2); // Default is YES. 

希望这有助于任何人。

@ Philip K,你的提示几乎为我解决了这个问题,debugging了四年前的代码。 showsRouteButton不是MPMoviePlayerController上的一个属性,我尝试设置:

 myMPMoviePlayer.allowsAirPlay = NO; 

但是这没有做什么…

我们正在为我们的video播放器使用自定义控件,并发现路由button是MPVolumeView的一部分,您的诀窍适用于:

 MPVolumeView * vView = [[MPVolumeView alloc] initWithFrame: bounds]; vView.showsRouteButton = NO; 

答对了! 谢谢。