AirPlay支持,MPMoviePlayerController和MPVolumeView关系

spd*_*spd 14 iphone mpmovieplayercontroller relation airplay mpvolumeview

我正在开发一个支持视频播放的iPhone应用程序.我正在使用MPMoviePlayerController和自定义控件来播放视频.为此,我将MPMoviePlayerController的控件样式设置为MPMovieControlStyleNone.

我想为正在播放的视频支持AirPlay功能.根据文档,我们必须将MPMoviePlayerController的'allowsAirPlay'属性设置为YES以启用AirPlay功能.如果我使用带有自定义控件的MPMoviePlayerController,如何在播放器UI上显示AirPlay按钮?

我尝试过以下方法:

  1. 实例化的MPVolumeView
  2. 将MPVolumeView的showsRouteButton和showsVolumeSlider属性设置为NO以隐藏音量滑块和路径按钮
  3. 在我的自定义播放器View上添加了MPVolumeView

我没有相互给出MPVolumeView和MPMoviePlayerController的引用.但是,如果MPMoviePlayerController的'allowsAirPlay'设置为YES,那么AirPlay按钮将显示在MPVolumeView上.MPVolumeView和MPMoviePlayerController如何相关?请让我知道这两个独立创建的类之间的联系.

谢谢和问候,Deepa

dev*_*vid 10

由于MPMoviePlayerController仅允许您一次播放一个视频,因此MediaPlayer框架始终知道正在播放的视频.这就是MPVolumeView了解MPMoviePlayerController的方式.我没有正式的文档,但我想它以这种方式融入框架.

由于可能会进行大量的检查和平衡(并且他们喜欢一致的UI),Apple只允许您使用他们的AirPlay按钮/ UI来使用此功能.但是,您可以将该按钮放在任何位置:

airplayButton = [[MPVolumeView alloc] init];
airplayButton.frame = CGRectMake(myX, myY, 40, 40);
[airplayButton setShowsVolumeSlider:NO];
[customPlayerControls.view addSubview:airplayButton];
Run Code Online (Sandbox Code Playgroud)

我只是猜测宽度,高度为40,40,我确定它不正确,但是一旦我按下按钮就无所谓了.

  • 你问两个问题:>如果我使用带有自定义控件的MPMoviePlayerController,如何在我的播放器UI上显示AirPlay按钮?代码段回答了这个问题.创建一个MPVolumeView实例,隐藏它的音量滑块,你留下了Airplay按钮.设置其框架并将其添加到视图中.这会在您的控件中放置一个功能齐全的Airplay按钮.只有在范围内有启用Airplay的设备时才会出现.[改变外观]:http://stackoverflow.com/questions/5730973/airplay-support-mpmovieplayercontroller-and-mpvolumeview-relation/6988562#6988562 (2认同)