Html 在iPhone上自动播放内置youtube视频
我需要在IOS 5.0+的uiwebview中自动播放youtube的内联视频。 我设法让它与此内联:Html 在iPhone上自动播放内置youtube视频,html,ios,objective-c,youtube,uiwebview,Html,Ios,Objective C,Youtube,Uiwebview,我需要在IOS 5.0+的uiwebview中自动播放youtube的内联视频。 我设法让它与此内联: NSString *html = [NSString stringWithFormat:@"\ <html>\ <head>\ <script type='text/javascript'>\ function onPlayerReady(
NSString *html = [NSString stringWithFormat:@"\
<html>\
<head>\
<script type='text/javascript'>\
function onPlayerReady(event) {\
event.target.playVideo();\
}\
</script>\
<style type=\"text/css\">\
iframe {position:absolute; top:0%%; margin-top:-0px;}\
body {background-color:#000; margin:0;}\
</style>\
</head>\
<body>\
<iframe width=\"100%%\" src=\"https://www.youtube.com/embed/%@?feature=player_detailpage& modestbranding=1&rel=0;autoplay=1;showinfo=0;loop=1;autohide=1;playsinline=1;autoplay=1\" frameborder=\"0\" allowfullscreen></iframe>\
</body>\
</html>", ID];
[videoWebView loadHTMLString:html baseURL:[[NSBundle mainBundle] resourceURL]];
NSString*html=[nsstringwithformat:@]\
\
\
\
函数onPlayerReady(事件){\
event.target.playVideo()\
}\
\
\
iframe{位置:绝对;顶部:0%%;页边顶部:-0px;}\
正文{背景色:#000;边距:0;}\
\
\
\
\
\
“,ID];
[videoWebView加载HtmlString:html基本URL:[[NSBundle mainBundle]resourceURL]];
但我不知道如何让它自动播放。
我还找到了另一个解决方案,它可以自动播放视频,但它是全屏启动的,我不知道如何使它内联
NSString *youTubeVideoHTML = @"<!DOCTYPE html><html><head><style>body{margin:0px 0px 0px 0px;}</style></head>
<body> <div id=\"player\"></div>
<script> var tag = document.createElement('script');
tag.src = \"http://www.youtube.com/player_api\";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {width:'%d', height: '%d', videoId:'%@', events: { 'onReady': onPlayerReady, } }); }
function onPlayerReady(event) { event.target.playVideo(); }
</script>
</body> </html>";
NSString *html = [NSString stringWithFormat:youTubeVideoHTML, 320, 150, ID];
[videoWebView loadHTMLString:html baseURL:[[NSBundle mainBundle] resourceURL]];
NSString*youTubeVideoHTML=@“正文{margin:0px 0px 0px;}
var tag=document.createElement('script');
tag.src=\”http://www.youtube.com/player_api\";
var firstScriptTag=document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(标记,firstScriptTag);
var播放器;
函数onYouTubePlayerAPIReady(){
player=new YT.player('player',{width:'%d',height:'%d',videoId:'%@',事件:{'onReady':onPlayerReady,}});}
函数onPlayerReady(event){event.target.playVideo();}
";
NSString*html=[NSString stringWithFormat:youTubeVideoHTML,320150,ID];
[videoWebView加载HtmlString:html基本URL:[[NSBundle mainBundle]resourceURL]];
有没有办法让js版本内联或第一个版本自动播放?还是有其他解决办法?我终于找到了。
在JS版本中,您可以指定播放器参数(比如“showinfo”、“rel”当然还有“playsinline”)
您只需添加playerVars
对象并在其中指定参数。
因此,代码如下所示:
NSString *youTubeVideoHTML = @"<!DOCTYPE html><html><head><style>body{margin:0px 0px 0px 0px;}</style></head> <body> <div id=\"player\"></div> <script> var tag = document.createElement('script'); tag.src = \"http://www.youtube.com/player_api\"; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); var player; function onYouTubePlayerAPIReady() { player = new YT.Player('player', {width:'%d', height: '%d', videoId:'%@', playerVars: {'playsinline' : 1, 'rel':0, 'showinfo':0}, events: { 'onReady': onPlayerReady, } }); } function onPlayerReady(event) { event.target.playVideo(); } </script> </body> </html>";
NSString *html = [NSString stringWithFormat:youTubeVideoHTML, 320, 180, ID];
[videoWebView loadHTMLString:html baseURL:[[NSBundle mainBundle] resourceURL]];
NSString*youTubeVideoHTML=@“body{margin:0px 0px 0px;}var tag=document.createElement('script');tag.src=\”http://www.youtube.com/player_api\“var firstScriptTag=document.getElementsByTagName('script')[0];firstScriptTag.parentNode.insertBefore(标记,firstScriptTag);var player;函数onYouTubePlayerAPIReady(){player=new YT.player('player',{width:'%d',height:'%d',videoId:'%@',playerBars:{'playsinline':1,'rel':0,'showinfo':0},事件:{'onReady':onPlayerReady,}};}函数onPlayerReady(event){event.target.playerveo();}”;
NSString*html=[NSString stringWithFormat:youTubeVideoHTML,320,180,ID];
[videoWebView加载HtmlString:html基本URL:[[NSBundle mainBundle]resourceURL]];
我终于找到了它。
在JS版本中,您可以指定播放器参数(比如“showinfo”、“rel”当然还有“playsinline”)
您只需添加playerVars
对象并在其中指定参数。
因此,代码如下所示:
NSString *youTubeVideoHTML = @"<!DOCTYPE html><html><head><style>body{margin:0px 0px 0px 0px;}</style></head> <body> <div id=\"player\"></div> <script> var tag = document.createElement('script'); tag.src = \"http://www.youtube.com/player_api\"; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); var player; function onYouTubePlayerAPIReady() { player = new YT.Player('player', {width:'%d', height: '%d', videoId:'%@', playerVars: {'playsinline' : 1, 'rel':0, 'showinfo':0}, events: { 'onReady': onPlayerReady, } }); } function onPlayerReady(event) { event.target.playVideo(); } </script> </body> </html>";
NSString *html = [NSString stringWithFormat:youTubeVideoHTML, 320, 180, ID];
[videoWebView loadHTMLString:html baseURL:[[NSBundle mainBundle] resourceURL]];
NSString*youTubeVideoHTML=@“body{margin:0px 0px 0px;}var tag=document.createElement('script');tag.src=\”http://www.youtube.com/player_api\“var firstScriptTag=document.getElementsByTagName('script')[0];firstScriptTag.parentNode.insertBefore(标记,firstScriptTag);var player;函数onYouTubePlayerAPIReady(){player=new YT.player('player',{width:'%d',height:'%d',videoId:'%@',playerBars:{'playsinline':1,'rel':0,'showinfo':0},事件:{'onReady':onPlayerReady,}};}函数onPlayerReady(event){event.target.playerveo();}”;
NSString*html=[NSString stringWithFormat:youTubeVideoHTML,320,180,ID];
[videoWebView加载HtmlString:html基本URL:[[NSBundle mainBundle]resourceURL]];
为什么不使用本机视频播放器?试试wrapper,它很容易集成。为什么不使用本机视频播放器?
试试wrapper,它很容易集成。因为我认为它违反了youtube规则,因为我认为它违反了youtube规则