2012-02-24 4 views
2

Я создал Webview:YouTube Autoplay Возможности В IOS

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

У меня есть HTML/JavaScript для обработки загрузки видео, а также автозапуск и в следующем видео. Все это работает, но моя проблема заключается в том, что IOS автоматически загружает QuickTime-плеер, что тоже хорошо, но я не знаю, как это контролировать, и не знаю, как заставить видео играть, как только это произошло. Я бы хотел, чтобы кнопка, отображаемая в проигрывателе, автоматически запускалась. Я бы хотел, чтобы это произошло в любое время при загрузке нового видео.

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

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

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

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

+0

Здравствуйте, rob, не могли бы вы создать образец примера Xcode, чтобы показать, как вы это делаете? – Piero

ответ

4

Я нашел ответ: Если вы положили

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

+0

эй у меня такая же проблема - видео не автовоспроизведение; Я попробовал ваше решение, но он не работает. Есть идеи? – z22

+0

Незначительная проблема в том, что я больше не работаю для этой компании и не могу найти сайт или код. Это может быть в вашем js. Возможно, вам захочется проверить, разрешает ли ваш код автоматическое воспроизведение, используя api. Извините за отсутствие доступа к коду, потому что я мог проверить ваш код на основе этого. – Rob

0

Для проверки завершения воспроизведения я использовал следующий метод:

Во-первых, установить делегат вашего WebView на себя и осуществить это:

- (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; 
     } 
    } 
} 
+1

Решение уже в моем вопросе. Я отредактировал его и нашел гораздо более простой способ получить видео для автоматической игры. Который должен установить mediaPlaybackRequiresUserAction = FALSE; который установлен в webViewDidFinishLoad. Это правильный и самый прямой путь, потому что он не добавляет и не ищет ничего в окне/стеке. Остальное обрабатывается на стороне сценария jave. Спасибо за ответ, хотя. – Rob

Смежные вопросы