首页 > 解决方案 > Youtube iframe api 自动播放不适用于 chrome 和视频分辨率设置不适用于所有浏览器

问题描述

<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('youtube-vid', { 
                    videoId: 'M7lc1UVf-VE',
                    events: {
                        'onReady': onPlayerReady,
                        'onStateChange': onPlayerStateChange
                    }
                    });
                }
                function onPlayerReady(event) {
                   event.target.playVideo(); 
                    event.target.setPlaybackQuality('hd1080'); 
                }
                function onPlayerStateChange(e) {
                    if (e.data === YT.PlayerState.ENDED) {
                        player.playVideo(); 
                      }
                      
                }
</script>

请帮我设置 youtube 质量 hd1080 并在页面加载时自动播放我使用了上面的代码,但它对我不起作用

提前致谢!

标签: youtube-apiyoutube-javascript-apiyoutube-iframe-api

解决方案


Chrome 的自动播放政策于 2018 年 4 月更改 https://developers.google.com/web/updates/2017/09/autoplay-policy-changes

谷歌浏览器不允许自动播放视频。如果要自动播放,则必须将视频静音。根据政策指南。

火狐浏览器 在此处输入图像描述 谷歌浏览器 在此处输入图像描述

// This code loads the IFrame Player API code asynchronously.
var tag = document.createElement('script');

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

//    This function creates an <iframe> (and YouTube player)
//    after the API code downloads.
var player;
function onYouTubeIframeAPIReady() {
    player = new YT.Player('player', {
        height: '390',
        width: '640',
        videoId: 'M7lc1UVf-VE',
        events: {
            'onReady': onPlayerReady
        }
    });
}

//  The API will call this function when the video player is ready.
function onPlayerReady(event) {
    player.setPlaybackRate(2);
    event.target.playVideo();
}
<div id="player"></div>


推荐阅读