IOS中的YouTube自动播放功能

时间:2012-02-24 15:49:11

标签: ios iframe uiwebview webview youtube

我创建了一个webView:

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

我有html / javascript来处理视频的加载以及自动播放和下一个视频。这一切都有效,但我的问题是IOS自动加载像quicktime这样的播放器,这也是一件好事,但我不知道如何控制它,也不知道如何让视频播放一旦发生。我希望播放器中显示的按钮能够自动播放。我希望无论何时加载新视频都会发生这种情况。

JS代码就是这样的。我列出了一个列表,这是我的播放列表。我没有从youTube加载播放列表我只是制作自己的列表,当调用视频结束时,我按ID加载新视频。我还自动播放了视频,这就是IOS在视频加载时随时提供的按钮。另外,我使用iframe来完成所有这些,使用youTube api,这就是我对js方面的控制。

问题:有没有办法通过代码控制游戏?如果是这样的话,当播放器已经加载并且我加载另一个视频时,我怎么能得到自动播放?

我找到了答案:

如果您将webView.mediaPlaybackRequiresUserAction=FALSE;放入webViewDidFinishLoad,那么它会自动播放,并且仍允许您使用其他按钮。这就像一个魅力,建议使用它。

2 个答案:

答案 0 :(得分:5)

我找到了答案:如果你把

webView.mediaPlaybackRequiresUserAction = FALSE; 在webViewDidFinishLoad:然后它将自动播放并仍然允许您使用其他按钮。这就像一个魅力,并建议使用它。

答案 1 :(得分:0)

要检查播放是否完成,我使用以下方法:

首先,将webview的委托设置为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;
        }
    }
}