Désactiver l'exécution automatique sur youtube api javascript
-
02-01-2020 - |
Question
Je sais que sur l'utilisation de la lecture automatique :0 dans les paramètres et dans l'url.Le problème est quand j'utilise le loadVideoByID() fonction.La vidéo initiale semble toujours pas de démarrage automatique.mais au moment où je la charge dans la nouvelle vidéo que les nouvelles on démarre automatiquement.Je ne veux pas que les nouvelles de l'un à l'autostart, soit
$(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");
}
});
La solution
Par définition, loadVideoById()
les charges ET lit la vidéo.Ce que vous voulez utiliser est cueVideoById()
, qui va le préparer, mais attendre une commande à jouer réellement.
https://developers.google.com/youtube/js_api_reference#cueVideoById
Autres conseils
Je pense que ce post est très vieux, mais je vous ferais partager mon approche de toute façon, au cas où quelqu'un tombe sur elle, comme je viens de le faire:
Depuis il n'y a aucun moyen de l'appel de loadVideoById
et d'empêcher la lecture automatique, je suggère d'appeler le destroy()
méthode sur le joueur et ré-instancier, avec la nouvelle carte d'identité.
Disons quelque chose comme:
$(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);
}
});
J'espère que cela peut aider