10

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

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

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

但是,即使使用此代码,我仍然会在视频控件上看到 AirPlay 图标。如果我选择此选项并选择我的 AppleTV,则仅通过 AirPlay 发送音频 - 视频将继续在应用程序中播放。如果我设置allowsAirPlayYES,视频和音频都通过 AirPlay 发送。

有谁知道为什么会这样?这是操作系统的一项功能,允许通过 AirPlay 发送音频吗?

4

3 回答 3

4

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

于 2011-12-15T06:28:06.243 回答
2

我知道这是一个老问题,但也许这会对其他人有所帮助。
苹果有以下api来隐藏路由按钮(AirPlay)

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

希望这对任何人都有帮助。

于 2014-08-06T11:51:55.370 回答
0

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

myMPMoviePlayer.allowsAirPlay = NO;

但这什么也没做...

我们正在为我们的视频播放器使用自定义控件,并发现路由按钮是 MPVolumeView 的一部分,您的技巧适用于那里:

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

答对了!谢谢。

于 2015-03-18T23:32:46.573 回答