Я использую вспомогательную библиотеку Youtube iOS для воспроизведения встроенного видео YT в моем приложении. Мое приложение обычно работает без сбоев, а видео загружаются и воспроизводятся нормально. У меня была проблема, при которой, когда я поворачивал телефон (симулятор), видео выпадало из кадра. Поэтому, если бы я загрузил видео в портретной ориентации, видео было бы центрировано в портретной ориентации, но когда я повернулся бы в альбомную ориентацию, видео было бы в нижнем углу.
Чтобы решить эту проблему, теперь я изменяю размер плеера с помощью javascript.
- (void)setSizeOfIFrameToWidth:(int)width Height:(int)height {
[self.webView stringByEvaluatingJavaScriptFromString:
[NSString stringWithFormat:@"player.setSize(%d, %d)", width, height]];
}
(Это внутри класса YTPlayer, который я редактировал).
Это отлично работает и вызывается у владельца youtubeView:
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[self.youtubeView setSizeOfIFrameToWidth:self.youtubeView.frame.size.width Height:self.youtubeView.frame.size.height];
[super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
[self.youtubeView setNeedsDisplay];
}
(Я не уверен, что эта последняя строка setNeedsDisplay
что-то делает)
Но теперь при вращении сначала вид обрезается сбоку, а потом крутится неуклюже. Выглядит очень рвано. Вот лучшие скриншоты, которые я могу получить:
А также
Обратите внимание, как во время вращения видео обрезается.
(Кстати, я не владею правами на видео в плеере. Это отсюда https://www.youtube.com/watch?v=Q78COTwT7nE)