Мне удалось получить доступ к этой функции из подпредставления под названием FigPluginView в веб-представлении плеера YouTube с помощью помощника iOS YouTube iOS-youtube-player-helper .
Ссылка на дамп класса FigPluginView
Создайте пользовательский заголовок класса UIView, который предоставляет следующий метод:
#import <Foundation/Foundation.h>
@interface WMFigPluginView : NSObject
-(void)scriptEnterFullScreen;
@end
Импорт пользовательского FigPluginView и проигрывателя YouTube в интерфейс ViewController ()
#import <youtube-ios-player-helper/YTPlayerView.h>
#import "WMFigPluginView.h"
@property(nonatomic, strong) YTPlayerView *playerView;
Используйте следующие методы для запуска проигрывателя YouTube, отслеживания изменений состояния, поиска и вызова полноэкранного скрипта в FigPluginView.
- (void)presentYoutubeVideo {
if ([self.view.subviews containsObject:_playerView]){
[_playerView removeFromSuperview];
}
CGRect playerFrame = CGRectMake(0, 0, 0, 0);
_playerView = [[YTPlayerView alloc]initWithFrame:playerFrame];
_playerView.delegate = self;
[_playerView.webView setAllowsInlineMediaPlayback: NO];
[self.view addSubview:_playerView];
[self.playerView loadWithVideoId:@"YouTubeVideoID" playerVars:@{@"showinfo":@0,@"modestbranding":@1,@"autoplay":@1,@"playsinline":@0}];
}
-(void)playerViewDidBecomeReady:(YTPlayerView *)playerView {
[_playerView playVideo];
}
-(void)playerView:(YTPlayerView *)playerView didChangeToState:(YTPlayerState)state {
//stop activity indicator
if (state == kYTPlayerStateBuffering) {
//start activity indicator
}
if (state == kYTPlayerStatePlaying) {
WMFigPluginView *figPluginView = (WMFigPluginView*)[self findFigPluginView:_playerView.webView];
[figPluginView scriptEnterFullScreen];
}
}
- (UIView *)findFigPluginView:(UIView *)view {
for (__unsafe_unretained UIView *subview in view.subviews) {
if ([NSStringFromClass(subview.class) hasSuffix:@"FigPluginView"]) {
return subview;
} else if (subview.subviews.count > 0) {
return [self findFigPluginView:subview];
}
}
return nil;
}
Надеюсь, это поможет!