16

パラメータと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");

}

});

4

2 に答える 2

35

定義上、loadVideoById()ビデオをロードして再生します。使用したいのはcueVideoById()、準備はしますが、コマンドが実際に再生されるのを待ちます。

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

于 2013-11-18T19:01:41.077 に答える
0

この投稿は非常に古いと思いますが、私が行ったように、誰かがそれに出くわした場合に備えて、とにかく私のアプローチを共有します。

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);

}
});

これが役立つことを願っています

于 2016-04-01T10:08:14.563 に答える