Ios 为什么我的嵌入式YouTube播放器不会自动播放?

Ios 为什么我的嵌入式YouTube播放器不会自动播放?,ios,cocoa-touch,swift,uiwebview,youtube-api,Ios,Cocoa Touch,Swift,Uiwebview,Youtube Api,我正在iOS上的UIWebView中尝试以下代码以嵌入YouTube视频: <!DOCTYPE html> <html> <head> <style type="text/css"> body { margin: 0; padding: 0; } body, html {

我正在iOS上的
UIWebView
中尝试以下代码以嵌入YouTube视频:

<!DOCTYPE html>
<html>
    <head>
        <style type="text/css">
            body {
                margin: 0;
                padding: 0;
            }

            body, html {
                height: 100%;
                width: 100%;
            }
        </style>
    </head>
    <body>
        <iframe id="player" type="text/html" width="100%" height="100%" src="http://www.youtube.com/embed/M7lc1UVf-VE?enablejsapi=1" frameborder="0"></iframe>
        <script>
            var tag = document.createElement('script');

            tag.src = "https://www.youtube.com/iframe_api";
            var firstScriptTag = document.getElementsByTagName('script')[0];
            firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

            var player;
            function onYouTubeIframeAPIReady() {
                player = new YT.Player('player', {
                    events: {
                        'onReady': onPlayerReady
                    }
                });
            }

            function onPlayerReady(event) {
                event.target.playVideo();
            }
        </script>
    </body>
</html>

身体{
保证金:0;
填充:0;
}
正文,html{
身高:100%;
宽度:100%;
}
var tag=document.createElement('script');
tag.src=”https://www.youtube.com/iframe_api";
var firstScriptTag=document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(标记,firstScriptTag);
var播放器;
函数onyoutubeiframeapiredy(){
player=新的YT.player('player'{
活动:{
“onReady”:onPlayerReady
}
});
}
函数onPlayerReady(事件){
event.target.playVideo();
}
我使用以下Swift代码来完成它:

let html = "<!DOCTYPE html><html><head><style type=\"text/css\"> body { margin: 0; padding: 0; } body, html { height: 100%; width: 100%; } </style> </head> <body> <iframe id=\"player\" type=\"text/html\" width=\"100%\" height=\"100%\" src=\"http://www.youtube.com/embed/M7lc1UVf-VE?enablejsapi=1\" frameborder=\"0\"></iframe> <script> var tag = document.createElement('script'); tag.src = \"https://www.youtube.com/iframe_api\"; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); var player; function onYouTubeIframeAPIReady() { player = new YT.Player('player', { events: { 'onReady': onPlayerReady } }); } function onPlayerReady(event) { event.target.playVideo(); } </script> </body></html>"

let width = UIScreen.mainScreen().bounds.width
let height = UIScreen.mainScreen().bounds.height
youTubeWebView = UIWebView(frame: CGRectMake(20, 120, width - 40, height-500))
youTubeWebView.mediaPlaybackRequiresUserAction = false
view.addSubview(youTubeWebView)
youTubeWebView.loadHTMLString(html, baseURL: NSBundle.mainBundle().resourceURL)
let html=“body{margin:0;padding:0;}body,html{height:100%;width:100%;}var tag=document.createElement('script');tag.src=\”https://www.youtube.com/iframe_api\“var firstScriptTag=document.getElementsByTagName('script')[0];firstScriptTag.parentNode.insertBefore(标记,firstScriptTag);var player;函数onyoutubeiframeapiredy(){player=new YT.player('player',{events:{'onReady':onPlayerReady}});}函数onPlayerReady(event){event.target.playVideo();}”
设width=UIScreen.mainScreen().bounds.width
让高度=UIScreen.mainScreen().bounds.height
youTubeWebView=UIWebView(框架:CGRectMake(20,120,宽-40,高-500))
youTubeWebView.MediaPlaybackRequiresAction=false
view.addSubview(youTubeWebView)
youTubeWebView.loadHTMLString(html,baseURL:NSBundle.mainBundle().resourceURL)

但是,尽管视频加载了,但它实际上并不像预期的那样自动播放。

尝试放置
?rel=0&autoplay=1

<iframe id="player" type="text/html" width="100%" height="100%" src="http://www.youtube.com/embed/M7lc1UVf-VE?rel=0&autoplay=1" frameborder="0"></iframe>

希望能解决你的问题

顺便说一句:无法在IOS/手机中完成

“警告:为防止用户自费通过蜂窝网络进行未经请求的下载,无法在iOS上的Safari中自动播放嵌入式媒体-用户始终启动播放。”

可以,您所指的链接是针对Safari的,这是针对嵌入式UIWebView的,它有一个专门用于自动播放的属性。哦,我看到尝试将
loadHTMLString
更改为
loadRequest