2015-07-02 2 views
2

У меня есть подкласс AVPlayerViewController, чтобы я мог показать его в ландшафтном режиме на iPhone, переопределив supportedInterfaceOrientations. Это прекрасно работает. Но когда я нажимаю на облако в правом нижнем углу, чтобы выбрать опцию Subtitle и CC, она открывается в портретном режиме. Что может быть причиной?AVPlayerViewController пейзажной ориентации после подкласса

Есть ли другой способ отображения AVPlayerViewController в ландшафтном режиме без подкласса?

ответ

0

Вы имеете в виду только создание простого класса? Потому что это просто, просто создать новый класс и добавить AVLayer вместо создания AVPlayerViewController:

NSString *videoPath = [[NSBundle mainBundle] pathForResource:@"Movie" ofType:@"mp4"]; 
    NSURL *videoURL = [NSURL fileURLWithPath:videoPath]; 

AVPlayerItem * playerItem = [AVPlayerItem playerItemWithURL:videoURL]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(itemDidFinishPlaying:) name:AVPlayerItemDidPlayToEndTimeNotification object:playerItem]; 
AVPlayer *player = [AVPlayer playerWithPlayerItem:playerItem]; 

AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:player]; 
playerLayer.frame = self.view.bounds; 
[self.view.layer addSublayer:playerLayer]; 
[player play]; 

Затем переопределить правильные методы:

- (BOOL)shouldAutorotate { 
    return YES; 
} 

- (UIInterfaceOrientationMask)supportedInterfaceOrientations { 

    return UIInterfaceOrientationMaskLandscape; 
} 

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { 

    return UIInterfaceOrientationLandscapeLeft; 
}