ios 8 - MPMoviePlayerController 视频未相应旋转
Posted
技术标签:
【中文标题】ios 8 - MPMoviePlayerController 视频未相应旋转【英文标题】:ios 8 - MPMoviePlayerController Video not rotating accordingly 【发布时间】:2014-10-28 14:15:09 【问题描述】:在我的应用程序中,我尝试使用 MPMoviePlayerController 以横向和纵向模式播放视频。我写了一段代码来播放视频和处理它的旋转。我目前的代码在 ios 7 中运行良好,但在 ios 8 中,问题是在将 ipad 的旋转更改为横向时,相对于该位置,视频仍以纵向模式运行。任何人都可以建议我一种方法,以便我可以摆脱这个问题。
我现在的代码是:
NSURL *videoURL = [NSURL fileURLWithPath:urlFromPrevious];
moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];
moviePlayerController.scalingMode = MPMovieScalingModeAspectFit;
moviePlayerController.fullscreen=YES;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playbackFinishedCallback:) name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayerController];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willExitFullScreen:) name:MPMoviePlayerWillExitFullscreenNotification object:moviePlayerController];
[[moviePlayerController view] setFrame:CGRectMake(x_axe_forImage, y_axe_forImage, width_forImage, height_forImage+44)];
[[self view] addSubview:[moviePlayerController view]];
[moviePlayerController play];
【问题讨论】:
也许您可能想尝试使用UIWindowDidBecomeVisibleNotification
或UIWindowDidBecomeHiddenNotification
发送通知。
我已将此代码复制粘贴到一个新项目中,它在 iOS8 模拟器中运行良好,表明您的问题出在其他地方。也许您已经在嵌入视频的 ViewController 中实现了一个旋转回调方法,这与您的视频有关。请记住,在 iOS8 中,Apple 完全弃用了所有轮换回调,并引入了 -willTransitionToTraitCollection:withTransitionCoordinator: 和 -viewWillTransitionToSize:withTransitionCoordinator:,确保你处理了这些。
@ZoltánMatók:感谢您为我的问题投入时间。我发现我的问题正在发生,现在我已经解决了。
@RajatDeepSingh 没问题。请问最后是什么问题?
@RajatDeepSingh 那是什么?
【参考方案1】:
看看How to use MPMoviePlayerController。您必须使用正确的 UIViewController 选择器呈现该视图控制器:'presentMoviePlayerViewControllerAnimated'
【讨论】:
我正在使用 MPMoviePlayerController 而不是 MPMoviePlayerViewController 所以,我不能使用 presentMoviePlayerViewControllerAnimated 用这种方法好了,因为 MPMoviePlayerController 不是 UIViewController 的子类,我建议你将它的视图 autoresizingMask 设置为 UIViewAutoresizingFlexibleWidth 和 UIViewAutoresizingFlexibleHeight。以上是关于ios 8 - MPMoviePlayerController 视频未相应旋转的主要内容,如果未能解决你的问题,请参考以下文章
iOS 7 和 iOS 8 中的警报视图与 UIAlertController
在 ios 8 中以横向模式隐藏并在 xCode 6 中发布 ios 8 后尝试在 ios 7 中正常工作的状态栏问题
如何在 iOS 8 中从 iOS 9 实现 UIUserNotificationActionBehavior.TextInput?