5

我正在尝试嵌入 youtube 视频并在我的应用程序中自动播放。该代码无法在 iOS6 上运行,但它可以在较旧的 iOS 5 上完美运行。

我这样做:

-(IBAction)playVideo:(id)sender {

myWebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 400)];
myWebView.delegate = self;
[myWebView setAllowsInlineMediaPlayback:YES];
myWebView.mediaPlaybackRequiresUserAction=NO;

[myWebView loadHTMLString:[NSString stringWithFormat:@"<embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" width=\"300\" height=\"300\"></embed>", @"http://www.youtube.com/watch?v=TbsXUJITa40"] baseURL:nil];

}

- (UIButton *)findButtonInView:(UIView *)view {
UIButton *button = nil;

if ([view isMemberOfClass:[UIButton class]]) {
    return (UIButton *)view;
}

if (view.subviews && [view.subviews count] > 0) {
    for (UIView *subview in view.subviews) {
        button = [self findButtonInView:subview];
        if (button) return button;
    }
}
return button;
}

-(void)webViewDidFinishLoad:(UIWebView *)webView {

UIButton *b = [self findButtonInView:webView];
[b sendActionsForControlEvents:UIControlEventTouchUpInside];
}

所以 - 当 webview 被加载时,它会自动找到 uibutton 并且视频开始。我不明白,为什么在 iOS 6 中这种方法不再起作用。它加载了视频,但什么也没有出现...

任何人都可以帮助我吗?我要疯了,试图解决它...

4

2 回答 2

4

我希望现在给出答案还为时不晚,但这在 iOS 中根本不可能。就像苹果在其文档中所说的那样:https ://developer.apple.com/library/safari/#documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/AudioandVideoTagBasics/AudioandVideoTagBasics.html

为了防止用户自费通过蜂窝网络进行未经请求的下载,嵌入式媒体无法在 iOS 上的 Safari 中自动播放——用户始终会启动播放。一旦开始播放,iPhone 或 iPod touch 上会自动提供控制器,但对于 iPad,您必须设置控件属性或使用 JavaScript 提供控制器。

请注意,上面链接的文档一般适用于 Safari,而不是特定于 iOS。对我来说,这在第一次阅读时令人困惑,直到我注意到这一点。

所以不幸的是,目前这不适用于iOS。

于 2013-04-24T10:26:51.463 回答
4

您需要使用 JS 命令。这个链接应该有帮助。

于 2012-11-07T23:52:02.160 回答