Video 视频播放过程中旋转后iPad状态栏卡滞

Video 视频播放过程中旋转后iPad状态栏卡滞,video,ipad,statusbar,Video,Ipad,Statusbar,我在这件事上花了很长时间,而苹果开发者论坛却毫无帮助 我有一个播放视频的应用程序,当显示moviecontrols并旋转iPad时,状态栏将保持视频在方向开始之前的方向。然后,当状态栏处于另一个方向时,视图顶部有一个20px的间隙 有人见过这个问题吗 如果有任何帮助,我们将不胜感激。我也遇到了同样的问题,而且在将电影播放器恢复到窗口模式后,我的视图仍然混乱不堪。我不知道如何在全屏播放时修复此问题,但至少在切换回windowed后,您可以像这样修复状态栏: 注册MPMoviePlayerWill

我在这件事上花了很长时间,而苹果开发者论坛却毫无帮助

我有一个播放视频的应用程序,当显示moviecontrols并旋转iPad时,状态栏将保持视频在方向开始之前的方向。然后,当状态栏处于另一个方向时,视图顶部有一个20px的间隙

有人见过这个问题吗


如果有任何帮助,我们将不胜感激。

我也遇到了同样的问题,而且在将电影播放器恢复到窗口模式后,我的视图仍然混乱不堪。我不知道如何在全屏播放时修复此问题,但至少在切换回windowed后,您可以像这样修复状态栏:

  • 注册MPMoviePlayerWillExitFullscreenNotification的观察员
  • 在通知回调函数中,启动一个NSTimer,稍后调用另一个函数(如0.1s)
  • 在定时器功能中

    [[UIApplication sharedApplication]SetStatusBaroOrientation:[[UIDevice currentDevice]方向]动画:否]


    • 我也有同样的问题:

      • 在纵向中启动应用程序(例如)
      • 启动视频播放器(我们的视频播放器是使用
        presentModalViewController
        显示的)
      • 旋转iPad
      • 按“完成”退出视频
      砰!我们的应用程序的布局被破坏(我们为每个方向做一些自定义布局),并且状态栏位于错误的位置,尽管在视频中处于正确的位置

      我做了两件事来解决这两个问题:

      • 确保在调用
        [super viewwillbeen]后完成在
        视图中完成的自定义配置
      • MPMoviePlayerDiexitFullScreenNotification
        MPMoviePlayerPlayerPlaybackDidFinishNotification
        实现观察器(在我的案例中,单击“完成”时从未调用第一个观察器)
      观察者回调的代码如下所示:

      [self performSelector: @selector(checkAndFixStatusBar)
                 withObject: nil
                 afterDelay: 0];
      
      [[NSNotificationCenter defaultCenter] removeObserver: self];
      
      最后一个方法,在故意0延迟后调用:

      - (void)checkAndFixStatusBar
      {
          UIInterfaceOrientation intOrient = self.interfaceOrientation;
          UIInterfaceOrientation sbOrient = [[UIApplication sharedApplication] statusBarOrientation];
      
          if (intOrient != sbOrient)
          {
              [[UIApplication sharedApplication] setStatusBarOrientation: intOrient animated: NO];
              NSLog(@"Fixed status bar orientation"); 
          }
      }
      
      状态栏仍在闪烁,但这是我想到的最好的方法

      希望这有帮助


      编辑:我已经删除了
      performSelector
      步骤,并直接调用了状态栏设置,在我的情况下,它没有明显的区别(仍在闪烁)。

      听起来这属于超级用户。