Отключить автозапуск в YouTube javascript api
Я знаю об использовании автовоспроизведения: 0 в параметрах и в url. Проблема заключается в том, что я использую функцию 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");
}
});
Ответы
Ответ 1
По определению loadVideoById()
загружает И воспроизводит видео. То, что вы хотите использовать, - это cueVideoById()
, который подготовит его, но дождитесь, пока команда начнет играть.
https://developers.google.com/youtube/js_api_reference#cueVideoById
Ответ 2
Я считаю, что этот пост очень старый, но я бы поделился своим подходом так или иначе, если кто-то наткнулся на него, как я только что сделал:
Поскольку нет способа вызвать loadVideoById
и предотвратить автозапуск, я бы предложил вызвать метод destroy()
на проигрывателе и восстановить его с новым идентификатором.
Скажем что-то вроде:
$(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);
}
});
Надеюсь, это поможет