2011-02-07 5 views
5

J'ai une fonction liée à un événement onClick. C'est censé jouer une chanson. Si une chanson est déjà jouée, elle est censée arrêter la chanson en cours et commencer à jouer la nouvelle. Le seul problème est que pour autant que je sache, il n'y a qu'une méthode pause et cela signifie que la chanson précédente reprendra de la position de pause et non le début. Y at-il un moyen de contourner cela (comme une méthode .stop())?Démarrage et arrêt de l'audio dans Javascript

Voici mon code:

var currSong=""; 

function playSong(newSong){   
     alert(newSong); 
     if (newSong != ""){ 
      if(currSong != "") { 
       document.getElementById(currSong).pause(); 
      }   
      document.getElementById(newSong).play(); 
      currSong = newSong; 
     } 
} 
+0

Est-ce l'API audio HTML5? –

+0

Je suppose, c'est un tag

+0

L'API est ici: http://www.w3.org/TR/html5/video.html#media-elements –

Répondre

6

regardant les MDC documentation for the audio element, il semble que la bonne façon de le faire est en définissant la propriété currentTime:

function playSong(newSong){   
    alert(newSong); 
    if (newSong != ""){ 
     if(currSong != "") { 
      document.getElementById(currSong).pause(); 
     }   
     var newSongEl = document.getElementById(newSong); 
     newSongEl.currentTime = 0; 
     newSongEl.play(); 
     currSong = newSong; 
    } 
} 

En outre, il serait préférable pour stocker l'élément pertinent dans currSong, plutôt que son ID, sauf si vous utilisez l'ID pour autre chose.

+0

Merci pour la réponse rapide, ça marche! – tripleZee

Questions connexes