2011-10-13 53 views
10

我有一个MPMoviePlayerController的实例,用于在iPhone应用上显示一些实时流式视频。这工作正常,但我希望删除所有AirPlay功能。使用MPMoviePlayerController禁用AirPlay

可以肯定的,我专门禁用的AirPlay像这样:

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

然而,即使有这样的代码,我仍然看到在视频控件中的AirPlay图标。如果我选择此选项,并选择我的AppleTV,只有音频通过AirPlay发送 - 视频会继续在应用程序中播放。如果我将allowsAirPlay设置为YES,则两个视频&音频都通过AirPlay发送。

有谁知道为什么会发生这种情况?这是OS的一项功能,允许通过AirPlay发送音频吗?

+0

你尝试设置'useApplicationAudioSession = NO;'吗? – 2011-10-24 16:40:44

+0

我现在 - 似乎没有任何区别,我害怕。 –

+0

您是否在设置播放器的内容网址之前设置了allowAirPlay? – jbat100

回答

4

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

+0

很老的问题;但是有没有机会链接到支持这个的Apple文档? – Craig

+1

对不起,没有 - 我实际上从一位苹果工程师的技术讲座中得到了答案。如果你从逻辑上思考它是有道理的。那些想要使用蓝牙耳机或扬声器的人应该始终能够使用它们,因为它们可能很难听到。 –

+0

谢谢。我认为这很有道理,只关心内容许可。 – Craig

2

我知道它的一个老问题,但仍然可能这会帮助别人。
苹果有下列API隐藏路线按钮(AirPlay的)

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

希望这有助于任何人。

0

@Philip K,你的提示差不多为我解决了这个问题,调试了一些四年前的代码。 showsRouteButton不上的MPMoviePlayerController属性,我试图设置:

myMPMoviePlayer.allowsAirPlay = NO; 

但是这并没有什么...

我们使用自定义的控制我们的视频播放器,并发现该路由按钮是MPVolumeView的一部分,您的诀窍适用于此:

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

宾果!谢谢。

相关问题