2016-03-29 1 views
-1

Je travaille sur un lecteur audio web en utilisant html/css et javascript.JS lecteur audio, cliquez sur l'élément de la liste pour jouer

Le lecteur utilise une liste pour stocker les chansons actuellement, et affiche la liste au bas du lecteur comme liste de lecture.

Je veux faire en sorte que lorsque je clique sur un élément de la liste, l'audio pour cet élément de la liste commence à jouer.

C'est le code que j'ai actuellement:

//Click Song Title 

$('#playlist li').click(function(){ 
audio.play(); 

$('#play').hide(); 
$('#pause').show(); 
$('#duration').fadeIn(400); 
showDuration(); 
}); 

Il fonctionne, sauf que peu importe quel élément liste que je clique dessus joue juste la chanson du premier élément de la liste. Cela ne fonctionne que si le lecteur est fraîchement chargé ou si la chanson est en pause.

Si vous voulez savoir ce qu'il se passe d'autre dans le code, faites-le moi savoir.

Voici ma définition originale de l'élément audio

//Create AUDIO OBJECT 
audio = new Audio('http://localhost/beats/wp-content/themes/AG_1/html_5_audio_player/media/' + song); 
+0

Où attribuez-vous ce qu'est 'audio'? Il ne semble pas que ça change, donc il va continuer à jouer la tâche originale. –

+0

J'ai ajouté ma définition originale de l'audio dans mon message original –

+0

'// Créer AUDIO OBJECT \t audio = new Audio ('http: // localhost/temps/contenu-wp/themes/AG_1/html_5_audio_player/media /' + chanson); ' –

Répondre

0

Définir audio quand vous savez ce que l'audio va être ... comme lorsque vous cliquez sur une chanson.

//Click Song Title 

$('#playlist li').click(function(){ 

//Create AUDIO OBJECT 
audio = new Audio('http://localhost/beats/wp-content/themes/AG_1/html_5_audio_player/media/' + 
    this.val()); // Not sure what the actual value is here, but you need to update what the file that is playing is. 

audio.play(); 

$('#play').hide(); 
$('#pause').show(); 
$('#duration').fadeIn(400); 
showDuration(); 
}); 
+0

Bien, c'est ce que j'ai commencé à faire mais je ne sais pas non plus à quoi changer cette valeur. J'ai essayé le code suivant mais il était une mauvaise estimation =/ '$ ('# playlist li') cliquez sur (function() {// \t Créer un objet AUDIO \t audio = new Audio ('http: //. localhost/beats/wp-content/thèmes/AG_1/html_5_audio_player/media/'+ \t this.val ($ (' # playlist li + chanson '))); // Je ne sais pas quelle est la valeur réelle ici, mais vous mettre à jour ce que le fichier en cours de lecture est \t audio.play().. \t $ ('# play') cacher(); \t $ ('# pause') show();. \t $ ('# duration'). FadeIn (400); \t showDuration(); }); ' –

+0

@AlexGray Vous devez vraiment mettre tout votre code dans votre question, sinon je fais beaucoup de devinettes. –

+0

Merci d'avoir essayé, je posterai une réponse avec comment je l'ai eu pour travailler pour tous ceux qui sont curieux. –

0
//Click Song Title 



$('#playlist li').click(function(){ 

audio.pause(); 
if(typeof audio !== "undefined") audio.src='http://localhost/beats/wp-content/themes/AG_1/html_5_audio_player/media/' + 
    $(this).attr('song'); 

audio.play(); 

$('#play').hide(); 
$('#pause').show(); 
$('#duration').fadeIn(400); 
showDuration(); 
$('#playlist li').removeClass('active'); 
$(this).addClass("active"); 

}); 

C'est le code que je mis en œuvre avec le reste pour le faire fonctionner. Je sais que ne pas poster tout ça pourrait ne pas être très utile, mais peut-être que cela aidera quelqu'un.