Возможности автозапуска YouTube в IOS - PullRequest
2 голосов
/ 24 февраля 2012

Я создал веб-просмотр:

videoView.delegate = self;
videoView.userInteractionEnabled = true;
[videoView loadRequest:[[NSURLRequest alloc]initWithURL:[[NSURL alloc]   initWithString:@"website"]]];

У меня есть html / javascript для обработки загрузки видео, а также автозапуска и следующего видео. Это все работает, но моя проблема в том, что IOS автоматически загружает проигрыватель, работающий в режиме быстрого времени, что тоже хорошо, но я не знаю, как это контролировать, и при этом я не знаю, как заставить видео воспроизводиться после того, как это произошло. Я хотел бы, чтобы кнопка, которая появляется в плеере, запускалась автоматически. Я хотел бы, чтобы это происходило каждый раз, когда загружается новое видео.

Код JS работает следующим образом. Я беру в списке, и это мой список воспроизведения. Я не загружаю плейлист с youTube, я просто создаю свой собственный список, и когда вызывается конец видео, я загружаю новое видео по идентификатору. Я также автоматически воспроизводю видео, что дает мне кнопку, которую IOS предоставляет при загрузке видео. Кроме того, я использую iframe, чтобы сделать все это, с API youTube, как я могу контролировать стороны js.

Вопрос: есть ли способ управления игрой через код? Если да, то как, если проигрыватель уже загружен, и я загружаю другое видео, как я могу получить его для автоматического воспроизведения?

Я нашел ответ:

Если вы введете webView.mediaPlaybackRequiresUserAction=FALSE; в webViewDidFinishLoad, он будет воспроизводиться автоматически и все еще позволит вам использовать и другие кнопки. Это работает как шарм и предлагаю использовать его.

Ответы [ 2 ]

5 голосов
/ 13 апреля 2012

Я нашел ответ: если поставить

webView.mediaPlaybackRequiresUserAction = FALSE;В webViewDidFinishLoad: он будет автоматически воспроизведен и все еще позволит вам использовать и другие кнопки.Это работает как шарм и предлагаю использовать его.

0 голосов
/ 30 марта 2012

Чтобы проверить, завершено ли воспроизведение, я использовал следующий метод:

Сначала установите для делегата вашего веб-просмотра значение self и выполните это:

- (void)webViewDidFinishLoad:(UIWebView *)_webView {
    UIButton *b = [self findButtonInView:_webView];
    [b sendActionsForControlEvents:UIControlEventTouchUpInside]; //autoplay :)
    [[[[[UIApplication sharedApplication] keyWindow] subviews] lastObject] setTag:1234];  //tag it 
}

, затем запустите таймер:

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(onTimer:) userInfo:nil repeats:YES];

и проверьте:

BOOL playing;
- (void)onTimer:(NSTimer *)t {
    id _topView = [[[[UIApplication sharedApplication] keyWindow] subviews] lastObject];
    if ([_topView tag]==1234)
    {
         playing=YES;
    }
    else {
        if (playing==YES) { //was playing, but now not anymore
            //dismiss your view, or do other things.
            [t invalidate];
            playing=NO;
        }
    }
}
...