Как повернуть экран в альбомной ориентации с помощью AVPlayerViewController?

Я использую автомакет и на экране создаю AVPlayerViewController с половиной размера основного вида. Я использую UITabBarViewController и UINavigationController. Навигация по этому экрану осуществляется из первого дочернего ViewController UITabBarViewController. Код такой..

    avPlayerVideoController = [[AVPlayerViewController alloc] init];

    avPlayer = [AVPlayer playerWithURL:[NSURL URLWithString:videoURL]];

    avPlayerVideoController.view.frame = CGRectMake( imgViewVideo.frame.origin.x, imgViewVideo.frame.origin.y, imgViewVideo.frame.size.width, imgViewVideo.frame.size.height);
    avPlayerVideoController.delegate = self;
    avPlayerVideoController.showsPlaybackControls = YES;
    avPlayerVideoController.player = avPlayer;
    [avPlayerVideoController.player play];

теперь я хочу, чтобы видео поворачивалось в альбомной ориентации, когда я нажимаю эту полноэкранную кнопку, которая поставляется с AVPlayerViewController. Он просто остается в портретной ориентации, даже если я поворачиваю телефон. И также нет метода делегата, вызываемого при нажатии полноэкранной кнопки. Пожалуйста, мне это очень нужно. Объясните подробно, как мне этого добиться. Спасибо


person Hiren Prajapati    schedule 05.04.2016    source источник
comment
Вы нашли решение?   -  person karthikeyan    schedule 09.10.2017
comment
Я тоже столкнулся с такой же проблемой, вы нашли решение?   -  person FelipeOliveira    schedule 15.02.2018


Ответы (1)


добавьте приведенный ниже код в свой viewController, содержащий AVPlayerViewController

-(BOOL)shouldAutorotate{
    return YES;
}

-(UIInterfaceOrientationMask)supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskAllButUpsideDown;
}

Надеюсь, это поможет вам.

person Vvk    schedule 05.04.2016
comment
Мне это не помогло. Когда вызывался этот метод с поддержкойInterfaceOrientations? И я использовал TabBarViewController. И это не самый топовый ViewController. Навигация осуществляется с верхнего рычага ViewController. - person Hiren Prajapati; 05.04.2016
comment
@HirenPrajapati ваш AVPlayerViewController добавлен или представлен? - person Vvk; 05.04.2016
comment
о мой плохой. В моем проекте я включил только портретный вид. Кстати, AVPlayerViewController добавлен как подвид. После включения ландшафтной ориентации из проекта теперь я хочу изменить ориентацию только тогда, когда пользователь нажимает кнопку полноэкранного режима. Как я могу это сделать? Я делаю неправильно? Только из-за одного экрана включать поддержку альбомной ориентации? Поскольку экран вращается в каждом ViewController. - person Hiren Prajapati; 05.04.2016
comment
Итак, после полного понимания проблемы, теперь мой вопрос заключается в том, чтобы отключить поддержку альбомной ориентации в проекте, как этот добавленный AVPlayerViewController в self.view может поворачиваться в альбомную ориентацию при нажатии кнопки полноэкранного режима? - person Hiren Prajapati; 05.04.2016
comment
да, это правильный способ отключить ландшафт из проекта. но я не могу понять, почему вы добавляете AVPlayer в качестве подвида? почему не представляешься? не могли бы вы помочь мне лучше понять вашу проблему - person Vvk; 05.04.2016