代码之家  ›  专栏  ›  技术社区  ›  Prody

CocoaTouch:如何允许mpmovieplayercontroller但没有其他视图自动旋转?

  •  3
  • Prody  · 技术社区  · 15 年前

    我有这个iOS 3.2应用程序(iPad),它有很多内容和一些视频。

    所有视图都是纵向的,除了纵向的视频,还有全屏选项,我想让用户在全屏时自动旋转视频。

    shouldAutorotateForInterfaceOrientation: 我的应用程序通常拒绝自动旋转。

    我怎样才能让mpmovieplayercontroller的视图自动旋转,而不是我的应用程序中的任何其他视图?

    我想到的一些想法:

    1. 在里面 接口方向应为: :
      return isFullscreenMovieActive;
      这将使应用程序在电影处于全屏模式时允许旋转。除了一个大问题外,这一切都很好,一旦用户退出全屏模式,我就无法强制应用程序回到肖像模式。(即,用户启动应用程序,找到电影播放器,播放它,进入全屏模式,旋转设备,按完成,现在他将应用程序置于横向模式)
      是否有可接受的方法强制旋转到 UIInterfaceOrientation ?

    2. 苹果公司实际上建议抓取 MPMoviePlayerController 的视图。当设备旋转时,实际发生的是 UIWindow 得到一个 CGAffineTransform 应用于它。所以我可以这样做 MPMoviePlayer控制器 的视图,但当进入全屏模式时,视图将更改,而不是视图属性中的视图。
      有什么可以接受的方法吗 MPMoviePlayer控制器 的全屏视图?

    还是有更好的解决方案来完成这项任务?

    1 回复  |  直到 10 年前
        1
  •  1
  •   Mr. Berna    14 年前

    每个视图控制器可以返回其支持的方向 shouldAutorotateForInterfaceOrientation: . 应用程序的控制器只应在纵向旋转时返回true,除了 MPMoviePlayerController . 当应用程序显示视频时,请显示 MPMoviePlayer控制器 在另一个视图控制器上 presentModalViewController:animated: (或) presentViewController:animated:completion: 在iOS 5中)。完成视频后,关闭特殊的电影播放器控制器,您的另一个控制器仍应处于纵向模式。