【问题标题】:iPhone - Objective C - Play Video Fullscreen in Landscape modeiPhone - Objective C - 在横向模式下全屏播放视频
【发布时间】:2018-04-30 01:39:03
【问题描述】:

我已经查看并发现了一些类似的问题。但是提供的解决方案都不适合我,所以我问这个。

我正在编写一个以选项卡栏开头的 IOS 应用程序,每个选项卡视图控制器都有一个嵌入式导航控制器。我可以使用 AVPlayerViewController 流式传输视频并播放它,但无法强制它以横向模式启动(即使手机处于纵向模式。如果我翻转手机,它确实会变成横向模式的全屏。

这是我拥有的用于流式传输视频的代码部分:

-(void) startPlayback {

  NSURL *streamURL = [NSURL URLWithString: pathToVideoStream];

  NSLog(@"Entered %s - Will now try to play video at NSURL: %@",__PRETTY_FUNCTION__, streamURL );

  AVPlayerViewController *moviePlayer = [[AVPlayerViewController alloc] init];
  moviePlayer.player = [AVPlayer playerWithURL:streamURL];
  [self presentViewController:moviePlayer animated:YES completion:nil];
  moviePlayer.view.frame = self.view.frame;
  [moviePlayer.player play];

}

我已经添加了这篇文章的建议: Play Video In Landscape when entire application is Portait

但这并没有强制视频以横向模式播放。我看到有关使用 CGAffine 的其他建议,但我的第一直觉说这不是翻转视频的正确方法。请指教。

【问题讨论】:

    标签: objective-c avplayerviewcontroller


    【解决方案1】:

    我找到了解决办法。

    我创建了一个 AVPlayerViewController 的子类并命名为 LandscapeAVPlayerViewController。在子类的实现中,我重写了两个方法:

    -(UIInterfaceOrientationMask)supportedInterfaceOrientations{
    
       [super supportedInterfaceOrientations];
       return UIInterfaceOrientationMaskLandscape; // allows Left and Right both
    }
    
    -(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{
        return UIInterfaceOrientationLandscapeRight;   // prefers Right in portrait mode
    }
    

    然后回到 startPlayback 方法中,我将代码更改为:

    -(void) startPlayback {
    
       NSURL *streamURL = [NSURL URLWithString: pathToVideoStream];
    
       LandscapeAVPlayerViewController *landscapeMoviePlayerVC =  [[LandscapeAVPlayerViewController alloc] init];
    
       landscapeMoviePlayerVC.player = [AVPlayer playerWithURL:streamURL];
    
       [self presentViewController:landscapeMoviePlayerVC animated:YES completion:nil];
       [landscapeMoviePlayerVC.player play];
    
    }
    

    这就是我需要做的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-21
      • 2013-06-24
      • 1970-01-01
      • 2015-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多