我创建了一个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
,那么它会自动播放,并且仍允许您使用其他按钮。这就像一个魅力,建议使用它。
答案 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;
}
}
}