1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
| <%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
</head>
<body>
<div>
<iframe width="250" height="200" src="https://www.youtube.com/embed/-MifpF7p1P0?enablejsapi=1" frameborder="0" allowfullscreen style="margin-right: 10px"></iframe>
<iframe width="250" height="200" src="https://www.youtube.com/embed/vkBiEuZSq9s?enablejsapi=1" frameborder="0" allowfullscreen style="margin-right: 10px"></iframe>
<iframe width="250" height="200" src="https://www.youtube.com/embed/-RLE2Q7OzME?enablejsapi=1" frameborder="0" allowfullscreen style="margin-right: 10px"></iframe>
<iframe width="250" height="200" src="https://www.youtube.com/embed/W3eJWpvIl0g?enablejsapi=1" frameborder="0" allowfullscreen style="margin-right: 10px"></iframe>
</div><br>
<span id="affiche" style="margin-left: 20px"></span>
<script type="text/javascript">
//Voici une autre manière de structure des vidéo les ids des videos que je veux affichés
var les_videos=[{id: "-MifpF7p1P0"},{id :"vkBiEuZSq9s"}, {id: "-RLE2Q7OzME"}, {id :"W3eJWpvIl0g"}];
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
//On dois donner des ids aux iframes car c'est à nous de fournir
//On peut donner chaque iframe un id aleatoire qu'on veut comme ça :
//<iframe id="if1 width="250" height="200"...../> ça va marcher
//l'id du iframe c'est juste pour dire à l'API là il où va créer ou gerer le lecteur
//Il faut differencier entre le iframe et le contenu à l'intérieur
//Mais on va faire que les les ids des iframe soient aussi les ids des vidéo
var N={};
$(function (){
$("iframe").each(function (i){
var id_v=les_videos[i].id;
this.id=id_v;
//Je vais profiter l'occasion pour associer des numéro aux id;
//Juste pour associer une video à un numéro
N[id_v]=i+1;
//N sera enfin égale à {"-MifpF7p1P0":1,"vkBiEuZSq9s":2,.....
});
});
//On va crée nos lecteurs mais on va utiliser les id des video comme clé d'accès
//On va utiliser un tableau associatif qui va associé l'id de la vidéo avec le player
//Ça va aussi me faciliter de recupérer le lecteur qui a déclenché un évènement
var lecteurs={};
function onYouTubeIframeAPIReady() {
$.each(les_videos,function (i, video){
var id_v=video.id;
lecteurs[id_v]=new YT.Player(id_v,{
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
});
}
function onPlayerReady(event) {
//Je veux par exemple que seul la 2e vidéo se déclenche automatiquement
// target: c'est le player, a: c'est le iframe et id son id;
var id_v=event.target.a.id;
if(N[id_v]===2) {
//J'appel la méthode que j'ai défini playVideo
playVideo(id_v);}
return true;
}
function onPlayerStateChange(event) {
// target: c'est le player, a: c'est le iframe et id son id;
var id_v=event.target.a.id;
if (event.data == YT.PlayerState.PLAYING) {
$("#affiche").html("Lecutrue encours de la video dont id="+id_v+" c'est la "+N[id_v]+"e video");
}
if (event.data == YT.PlayerState.PAUSED) {
$("#affiche").html("Pause de la video dont id="+id_v+", c'est la "+N[id_v]+"e video");
}
if (event.data ==YT.PlayerState.ENDED) {
$("#affiche").html("FIN DE LA VIDEO id="+id_v+", c'est la "+N[id_v]+"e video");
}
}
function playVideo(id_v){
lecteurs[id_v].pauseVideo();
}
function stopVideo(id_v) {
lecteurs[id_v].stopVideo();
}
function pauseVideo(id_v){
lecteurs[id_v].pauseVideo();
}
</script>
</body>
</html> |
Partager