Je travaille sur un site qui contient une tonne de vidéos youtube intégrées, le client souhaite afficher une fenêtre contextuelle chaque fois qu'une vidéo cesse de s'afficher.
J'ai regardé l'api youtube et il semble y avoir un moyen de détecter la fin d'une vidéo:
http://code.google.com/apis/youtube/js_api_reference.html
mais je ne peux pas intégrer les vidéos telles qu'elles sont mentionnées sur cette page, car elles sont toutes déjà présentes sur le site (des milliers ont été ajoutées manuellement en collant du code intégré).
Existe-t-il un moyen de détecter la fin de ces vidéos sans modifier aucune des vidéos existantes (à l'aide de javascript)?
Cela peut être fait via l'API du lecteur youtube:
Exemple de travail:
<div id="player"></div>
<script src="http://www.youtube.com/player_api"></script>
<script>
// create youtube player
var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
width: '640',
height: '390',
videoId: '0Bmhjf0rKe8',
events: {
onReady: onPlayerReady,
onStateChange: onPlayerStateChange
}
});
}
// autoplay video
function onPlayerReady(event) {
event.target.playVideo();
}
// when video ends
function onPlayerStateChange(event) {
if(event.data === 0) {
alert('done');
}
}
</script>