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

时间:2013-04-23 10:33:45

标签: ios objective-c iframe youtube

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

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的默认播放器。

任何想法都赞赏!

2 个答案:

答案 0 :(得分: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"]];

答案 1 :(得分:0)

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