niko59480 O_o' | un petit up!
j'apporte plus de précision à mon problème au passage : j'ajoute dorénavant des sources à ma balise audio afin que l'enchainement se fasse tout seul... sauf qu'il ne se fait pas... et le problème lié à cette solution, c'est que dès que l'on ajoute un morceau en lecture, ça recharge la balise et donc le morceau en cours de lecture...
le code du player :
Code :
- <div id="lecteur_audio">
- <audio controls autoplay id="player">
- <source src="" />
- </audio>
- </div>
|
ma fonction pour lire un morceau (JS) :
Code :
- $('.play').click(function(){
- var path=this.nextElementSibling.nextElementSibling.nextElementSibling.innerHTML;
- if(path.substr(0,6)!='../../'){path='../'+path;}
- // on distingue le nom du path
- var _nom=path.substr(path.lastIndexOf('/')+1);
- var _path=path.substr(0, path.lastIndexOf(_nom));
- //
- // création du modèle json, ne sert qu'à l'affichage de la playlist
- var _media='{"playlist":[{"n":"'+_nom+'", "p":"'+_path+'"}]}';
- $('#stockage').text(_media);
- //
- // rechargement de la playlist pour l'actualiser
- $('#playlist').load('views/playlist.php');
- // remise en forme des chemins (gestion d'un problème lié aux espaces)
- while(_nom.indexOf("___" )>-1){_nom=_nom.replace("___", " " );}
- while(_path.indexOf("___" )>-1){_path=_path.replace("___", " " );}
- //
- // création du player avec chemin vers le média
- /* ancienne solution
- var audio = document.createElement('audio');
- audio.id="player";
- audio.loop=true;
- audio.controls=true;
- audio.autoplay=true;
- var source=document.createElement('source');
- console.log(_path+_nom);
- source.src=_path+_nom;
- audio.appendChild(source);
- $('#lecteur_audio').append(audio);
- */
- $('#lecteur_audio').html('<audio id="player" controls autoplay><source src="'+_path+_nom+'"></audio>');
- });
|
et ma fonction pour ajouter un morceau à ma playlist :
Code :
- $('.add').click(function(){
- var path=this.nextElementSibling.nextElementSibling.innerHTML;
- if(path.substr(0,6)!='../../'){path='../'+path;}
- var _nom=path.substr(path.lastIndexOf('/')+1);
- var _path=path.substr(0, path.lastIndexOf(_nom));
- // ajouter à l'objet json :
- // on récupère l'objet actuel si il y en a un
- var json=$('#stockage').text();
- var _objet=jQuery.parseJSON(json);
- if(_objet!=null){
- var _media='{"playlist":[';
- var _i=0;
- while(_i<_objet.playlist.length){
- _media+='{"n":"'+_objet.playlist[_i].n+'", "p":"'+_objet.playlist[_i].p+'"},';
- _i++;
- }
- _media+='{"n":"'+_nom+'", "p":"'+_path+'"}]}';
- }
- //var _media='{"n":"'+_nom+'", "p":"'+path+'"}';
- $('#stockage').text(_media);
- $('#playlist').load('views/playlist.php');
-
- // ajout du source pour ce titre au lecteur
- //var _source=document.createElement('source');
- // remise en forme des chemins
- while(_nom.indexOf("___" )>-1){_nom=_nom.replace("___", " " );}
- while(_path.indexOf("___" )>-1){_path=_path.replace("___", " " );}
- //_source.src=_path+_nom;
- //$('#player').children().add(_source);
- $('#player').html($('#player').html()+'<source src="'+_path+_nom+'">');
- });
|
je n'ai pas d'autres idées en tête pour palier à mon problème donc j'ai vraiment besoin d'un coup de main (sans mauvais jeu de mots) la dessus svp.
|