在UIWebView中仅使用iFrame播放YouTube视频

3

我正在尝试使用以下代码在我的UIWebView上播放YouTube视频,使用<iframe>标签 -

NSString *html = @"\
<html><head>\
<style type=\"text/css\">\
body {    background-color: transparent;\
color: white; \
}\
</style>\
</head><body style=\"margin:0\">\
<iframe class=\"youtube-player\" width=\"300\" height=\"300\" src=\"http://www.youtube.com/embed/efRNKkmWdc0\" frameborder=\"0\" allowfullscreen=\"true\"></iframe>\
</body></html>";

UIWebView *videoView = [[UIWebView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 460.0)];
[videoView loadHTMLString:html baseURL:nil];

它的运行良好。

enter image description here

但我需要在Webview上播放,而不是使用iPhone的默认播放器。如何将其限制为仅在UIWebView上播放。我也定义了iframe播放器类为class=\"youtube-player\"。但它会使用iPhone的默认播放器。

如果您有任何想法,请告诉我!


嗨... Praveen... 你解决了这个问题吗?.. 请帮帮我。 - user2299177
@Jack1231 不是的。但我确定,iOS中的每个视频都不能在不使用其快速时间播放器的情况下播放。因此,在iOS上可能不可能。 - Praveenkumar
@Praveen,你找到答案了吗?我也遇到同样的问题。已经寻找解决方案两个月了。 - Jasmeet
@Jack1231 你找到任何解决方案了吗? - Jasmeet
2个回答

3
请尝试使用以下代码初始化iframe播放器:
        player = new YT.Player('player', {
                               height: '100%',
                               width: '100%',
                               videoId: 'M7lc1UVf-VE',
                               playerVars: {
                                 'controls' : '0',
                                 'playsinline' : 1
                               }
                               });

请注意将“playsinline”参数设置为1。在包含视图中,使用此参数初始化UIWebView:
webView.allowsInlineMediaPlayback = YES;

我注意到的一件事情是,您不能将baseURL参数设置为NULL;它必须是一个NSString。以下是一个示例,加载名为iframe-player.html的HTML文件,其中包含所需的HTML和JavaScript代码:

NSString *path = [[NSBundle mainBundle] pathForResource: @"iframe-player" ofType: @"html"];
NSString *embedHTML = [NSString stringWithContentsOfFile: path
                                                encoding:NSUTF8StringEncoding
                                                   error: &error];

[webView loadHTMLString:embedHTML baseURL:[NSURL URLWithString:@"about:blank"]];

你有示例项目吗?它对我来说没有内联播放。 - Avba
@AvnerBarr,你找到解决方案了吗? - Jasmeet
它正在工作,但是如何在播放器准备就绪和状态更改时调用委托方法? - Jagveer Singh

0

不可能。在iPhone上,Web视频总是全屏播放。 您的应用程序中播放视频的唯一可能性是使用MPMoviePlayer并将视图添加到屏幕上。但是,您需要有一个直接链接到视频文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接