【问题标题】:Disable autoplay in youtube javascript api在 youtube javascript api 中禁用自动播放
【发布时间】:2013-12-02 00:35:51
【问题描述】:

我知道在参数和 url 中使用 autoplay : 0 。问题是当我使用 loadVideoByID() 函数时。初始视频似乎总是不会自动启动。但是当我加载新视频时,新视频会自动启动。我也不希望那个新的自动启动

$(document).ready(function() {
var player;
window.onYouTubePlayerAPIReady = function() {
    player = new YT.Player('player', {
        height : '390',
        width : '640',
        videoId : 'JW5meKfy3fY',
        playerVars : {
            'autoplay' : 0,
            'rel' : 0,
            'showinfo' : 0,
            'egm' : 0,
            'showsearch' : 0,
            'controls' : 0,
            'modestbranding' : 1,
        },
        events : {
            'onReady' : onPlayerReady,
            'onStateChange' : onPlayerStateChange
        }
    });

};

window.onPlayerReady = function(event) {
    //event.target.playVideo();
    loadNewVid("bHQqvYy5KYo");
};

window.onPlayerStateChange = function(event, element) {
    //When the video has ended
    if (event.data == YT.PlayerState.ENDED) {
        //Get rid of the player
        element.style.display = "none";
    }
};

function loadNewVid(vidID){
    player.loadVideoById(vidID, "large");

}

});

【问题讨论】:

  • 你的代码是什么样的?你能提供给我们帮助吗?

标签: javascript jquery youtube-api youtube-javascript-api youtube-data-api


【解决方案1】:

根据定义,loadVideoById() 加载并播放视频。你要使用的是cueVideoById(),它会准备它,但要等待命令实际播放。

https://developers.google.com/youtube/js_api_reference#cueVideoById

【讨论】:

    【解决方案2】:

    我认为这篇文章已经很老了,但无论如何我都会分享我的方法,以防有人偶然发现它,就像我刚才所做的那样:

    由于无法调用 loadVideoById 并阻止自动播放,我建议在播放器上调用 destroy() 方法并使用新 ID 重新实例化它。

    我们可以这样说:

    $(document).ready(function() {
    var player;
    var playerParams = {
        height : '390',
        width : '640',
        videoId : 'JW5meKfy3fY',
        playerVars : {
            'autoplay' : 0,
            'rel' : 0,
            'showinfo' : 0,
            'egm' : 0,
            'showsearch' : 0,
            'controls' : 0,
            'modestbranding' : 1,
        },
        events : {
            'onReady' : onPlayerReady,
            'onStateChange' : onPlayerStateChange
        }
    }
    
    window.onYouTubePlayerAPIReady = function() {
        player = new YT.Player('player', playerParams);
    
    };
    
    window.onPlayerReady = function(event) {
        //event.target.playVideo();
        loadNewVid("bHQqvYy5KYo");
    };
    
    window.onPlayerStateChange = function(event, element) {
        //When the video has ended
        if (event.data == YT.PlayerState.ENDED) {
            //Get rid of the player
            element.style.display = "none";
        }
    };
    
    function loadNewVid(vidID){
        player.destroy();
        playerParams.videoId = vidID;
        player = new YT.Player('player', playerParams);
    
    }
    });
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2014-11-17
      • 2017-04-21
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 2016-12-31
      • 2020-09-18
      • 2018-07-14
      相关资源
      最近更新 更多