在 youtube javascript api 中禁用自动播放
-
02-01-2020 - |
题
我知道如何使用自动播放:参数和 url 中均为 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");
}
});
解决方案
根据定义, loadVideoById()
加载并播放视频。你想用的是 cueVideoById()
, ,这将准备好它,但等待命令实际播放。
https://developers.google.com/youtube/js_api_reference#cueVideoById
其他提示
我认为这篇文章已经很老了,但无论如何我都会分享我的方法,以防有人偶然发现它,就像我刚才所做的那样:
由于没有办法调用 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);
}
});
我希望这会有所帮助
不隶属于 StackOverflow