在横向环境中全屏播放视频(iPhone)
我有一个应用程序,它构建为ViewController的层次结构 “视图控制器”的上一页用于应用程序的“视频部分” 该应用程序设计为仅为肖像,但是,我想强制视频在横向模式下全屏播放(就像iPhone上的iPod应用程序一样) 在四处搜索之后,我发现很多人都有这个问题 我终于能够旋转它了,但它不能在全屏下工作,默认为纵向 由于它不能在全屏上工作,您可以在视频的父视图中看到元素 是否有一种简单的方法可以全屏旋转此视频,或者在播放视频时必须向父视图广播消息以隐藏元素 代码如下:在横向环境中全屏播放视频(iPhone),iphone,objective-c,xcode,Iphone,Objective C,Xcode,我有一个应用程序,它构建为ViewController的层次结构 “视图控制器”的上一页用于应用程序的“视频部分” 该应用程序设计为仅为肖像,但是,我想强制视频在横向模式下全屏播放(就像iPhone上的iPod应用程序一样) 在四处搜索之后,我发现很多人都有这个问题 我终于能够旋转它了,但它不能在全屏下工作,默认为纵向 由于它不能在全屏上工作,您可以在视频的父视图中看到元素 是否有一种简单的方法可以全屏旋转此视频,或者在播放视频时必须向父视图广播消息以隐藏元素 代码如下: NSURL *
NSURL *url = [NSURL URLWithString:[recipeData objectForKey:@"videoPath"]];
MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
// Register to receive a notification when the movie has finished playing.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlayBackDidFinish:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:moviePlayer];
moviePlayer.controlStyle = MPMovieControlStyleFullscreen;
moviePlayer.scalingMode = MPMovieScalingModeAspectFill;
moviePlayer.shouldAutoplay = YES;
moviePlayer.view.frame = [[UIScreen mainScreen] applicationFrame];
moviePlayer.view.transform = CGAffineTransformMakeRotation(1.57079633);
moviePlayer.view.bounds = CGRectMake(0.0, 0.0, 480, 320);
[self.view addSubview:moviePlayer.view];
//commenting out the line below will rotate the video, leaving it uncommented forces it to play fullscreen in portrait
[moviePlayer setFullscreen:YES animated:NO];
您是否尝试过改用
mpmovieplayervewcontroller
?它提出了一个全屏几乎模态视图控制器来处理视频播放。我在>=3.2版本中使用了它,并在中使用了MPMoviePlayerController
的黑客版本。您是否尝试过使用MPMoviePlayerController
?它提出了一个全屏几乎模态视图控制器来处理视频播放。我在>=3.2版本中使用它,并在中使用黑客版本的MPMoviePlayerController
,我在appDelegate中创建视频,并在视频启动时将其作为目标。这就做到了,让它凌驾于一切之上。我将创建视频的方法放在appDelegate中,并在视频启动时将其锁定。这就做到了,让它凌驾于一切之上。对于全屏播放,您应该使用MPMoviePlayServiceController,然后使用MPMoviePlayServiceController类上的“shouldAutorotateToInterfaceOrientation”方法以横向格式启动和播放
看起来像这样:
[yourInstanceOfMPMoviePlayerViewController shouldAutorotateToInterfaceOrientation: UIInterfaceOrientationLandscapeRight];
对于全屏播放,您应该使用MPMoviePlayServiceWController,然后使用MPMoviePlayServiceWController类上的“shouldAutorotateToInterfaceOrientation”方法使其以横向格式启动和播放 看起来像这样:
[yourInstanceOfMPMoviePlayerViewController shouldAutorotateToInterfaceOrientation: UIInterfaceOrientationLandscapeRight];
不幸的是,这并不存在;因为mpmovieplayervewcontroller是当前视图的子视图,所以也不能这样做。因此,您可以在视频上方看到父视图的菜单。[moviePlayer设置全屏:是动画:否];在我的原始片段中,将视频放在最高级别,只是将其锁定为纵向。这是一个奇怪的现象,我想不出修复方法,但使用MPMoviePlayerViewController并手动将帧设置为整个屏幕都可以工作,我相信(这对我来说是可行的;尽管这是一个大量的尝试和错误,而且代码相当松散)。我将创建视频的方法放在appDelegate中,并在视频启动时将其作为目标。这就成功了,让它凌驾于一切之上;因为mpmovieplayervewcontroller是当前视图的子视图,所以也不能这样做。因此,您可以在视频上方看到父视图的菜单。[moviePlayer设置全屏:是动画:否];在我的原始片段中,将视频放在最高级别,只是将其锁定为纵向。这是一个奇怪的现象,我想不出修复方法,但使用MPMoviePlayerViewController并手动将帧设置为整个屏幕都可以工作,我相信(这对我来说是可行的;尽管这是一个大量的尝试和错误,而且代码相当松散)。我将创建视频的方法放在appDelegate中,并在视频启动时将其作为目标。这就成功了,让它凌驾于一切之上。