Bonjour tout le monde,
Je suis entrain de créer un player audio HTML5 + javascript + CSS et je dois dire que je ne maitrise pas totalement Javascript.
Je cherche le moyen de lancer automatiquement l'audio suivant quand celui en cours se termine. Après moultes recherches, j'ai compris que je devais utiliser addEventListener, mais malgrès la lecture de différents cours sur le sujet, je crois que je l'utilise toujours mal.
Quelqu'un pourrait me dire ce qui ne va pas dans mon code s'il vous plait ?
Voici le code javascript
Et mon code html
Merci d'avance
Modifié par babetine (08 Jun 2014 - 21:57)
Je suis entrain de créer un player audio HTML5 + javascript + CSS et je dois dire que je ne maitrise pas totalement Javascript.
Je cherche le moyen de lancer automatiquement l'audio suivant quand celui en cours se termine. Après moultes recherches, j'ai compris que je devais utiliser addEventListener, mais malgrès la lecture de différents cours sur le sujet, je crois que je l'utilise toujours mal.
Quelqu'un pourrait me dire ce qui ne va pas dans mon code s'il vous plait ?
Voici le code javascript
<script>
function loadSong(elt, e,idPlayer) {
if(!e) var e = window.event;
document.getElementById(idPlayer).src=elt.href;
document.getElementById(idPlayer).load();
document.getElementById(idPlayer).play();
return false;
}
window.onload = function() {
//init du player A
links = document.getElementById("playlist").getElementsByTagName("a");
for(var i = 0; i<links.length; i++) {
links[ i].onclick=function(e) { return loadSong(this, e,"player"); };
//je met un espace avant le i entre crochet sinon le code bugue dans alsacreations, mais y'a pas d'espace en vrai dans mon code
}
//init du player B
links = document.getElementById("playlist2").getElementsByTagName("a");
for(var i = 0; i<links.length; i++) {
links[ i].onclick=function(e) { return loadSong(this, e,"player2"); };
}
}
// Lancer l'audio suivant si l'audio en cours est fini pour le player A
document.getElementById(idPlayer).addEventListener('ended', function() {
links = document.getElementById("playlist").getElementsByTagName("a");
for(var i = 0; i<links.length; i++) {
i=i+1;
links[ i]=function(e) { return loadSong(this, e,"player"); };
} }
, false);
</script>
Et mon code html
<div> <audio tabindex="0" id="player" controls="controls">Votre navigateur ne reconnaît pas la balise audio HTML5</audio>
<ul id="playlist">
<li><a href="http://monnaielibre.creationmonetaire.info/wp-content/uploads/2014/01/Monnaie_Libre_49.ogg">Monnaie Libre N°49</a></li>
<li><a href="http://monnaielibre.creationmonetaire.info/wp-content/uploads/2014/01/Monnaie_Libre_48.ogg">Monnaie Libre N°48</a></li>
<li><a href="http://monnaielibre.creationmonetaire.info/wp-content/uploads/2014/01/Monnaie_Libre_47.ogg">Monnaie Libre N°47</a></li>
<li><a href="http://monnaielibre.creationmonetaire.info/wp-content/uploads/2014/01/Monnaie_Libre_46.ogg">Monnaie Libre N°46</a></li>
</ul>
</div>
</br></br>
<div> <audio tabindex="0" id="player2" controls="controls">Votre navigateur ne reconnaît pas la balise audio HTML5</audio>
<ul id="playlist2">
<li><a href="http://monnaielibre.creationmonetaire.info/wp-content/uploads/2014/01/Monnaie_Libre_49.ogg">Monnaie Libre N°49</a></li>
<li><a href="http://monnaielibre.creationmonetaire.info/wp-content/uploads/2014/01/Monnaie_Libre_48.ogg">Monnaie Libre N°48</a></li>
<li><a href="http://monnaielibre.creationmonetaire.info/wp-content/uploads/2014/01/Monnaie_Libre_47.ogg">Monnaie Libre N°47</a></li>
<li><a href="http://monnaielibre.creationmonetaire.info/wp-content/uploads/2014/01/Monnaie_Libre_46.ogg">Monnaie Libre N°46</a></li>
</ul>
</div>
Merci d'avance
Modifié par babetine (08 Jun 2014 - 21:57)