我正在开发一个支持视频播放的iPhone应用程序。我使用MPMoviePlayerController和自定义控件来播放视频。为此,我将MPMoviePlayerController的控件样式设置为MPMovieControlStyleNone。
我想支持AirPlay功能的视频正在播放。根据文档,我们必须将MPMoviePlayerController的‘MPMoviePlayerController’属性设置为YES,以启用AirPlay特性。如果我使用带有自定义控件的AirPlay,如何在播放机UI上显示MPMoviePlayerController按钮?
我尝试了以下几点:
MPVolumeView
上
我还没有给出MPVolumeView和MPMoviePlayerController之间的参考。但是,如果将“allowsAirPlay”of MPMoviePlayerController设置为“是”,则AirPlay按钮将显示在MPVolumeView上。MPVolumeView和MPMoviePlayerController有什么关系?这两个独立创建的类之间有什么联系?
发布于 2011-08-08 21:03:50
因为MPMoviePlayerController一次只允许播放一个视频,所以MediaPlayer框架总是知道正在播放的视频。MPVolumeView就是这样知道MPMoviePlayerController的。我没有正式的文档,但我想它是以这种方式进入框架的。
由于可能有很多的制衡(而且他们喜欢一致的UI),苹果只允许你使用他们的AirPlay按钮/UI来利用这个特性。然而,你可以把按钮放在任何你想要的地方:
airplayButton = [[MPVolumeView alloc] init];
airplayButton.frame = CGRectMake(myX, myY, 40, 40);
[airplayButton setShowsVolumeSlider:NO];
[customPlayerControls.view addSubview:airplayButton];我只是猜到了宽度,高度是40,40,我相信这是不正确的,但一旦我得到按钮的位置,这并不重要。
发布于 2011-06-03 08:07:44
for (UIButton *button in volumeView.subviews) {
if ([button isKindOfClass:[UIButton class]]) {
[button setImage:[UIImage imageNamed:@"custom-route-button.png"] forState:UIControlStateNormal];
[button sizeToFit];
}}我想这会对你有帮助。
发布于 2012-02-25 19:27:49
MPVolumeView有一个属性来隐藏卷滑块并显示路由按钮。因此,没有必要遍历隐藏的视图。
MPVolumeView *volumeView = [[[MPVolumeView alloc] initWithFrame:myContainerView.bounds] autorelease];
volumeView.showsVolumeSlider = NO;
volumeView.showsRouteButton = YES;
[myContainerView addSubview:volumeView];AirPlay (路由)按钮的位置可能与您预期的不一样,因此您可能需要稍微播放容器视图的框架,才能将其放到您想要的位置。
https://stackoverflow.com/questions/5730973
复制相似问题