2011-02-07 15 views
5

Mam funkcję powiązaną ze zdarzeniem onClick. Ma grać piosenkę. Jeśli jest już odtwarzana piosenka, powinna zatrzymać obecną piosenkę i zacząć grać nową. Jedynym problemem jest to, że o ile mi wiadomo, jest tylko metoda pauzy pauzy i oznacza to, że poprzedni utwór zostanie wznowiony z pozycji wstrzymanej, a nie początkowej. Czy jest jakiś sposób obejścia tego (jak metoda .stop())?Uruchamianie i zatrzymywanie dźwięku w języku JavaScript

Oto mój kod:

var currSong=""; 

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

Czy to jest API HTML5 Audio? –

+0

Chyba jest to tag ... – tripleZee

+0

Interfejs API znajduje się tutaj: http://www.w3.org/TR/html5/video.html#media-elements –

Odpowiedz

6

Od patrząc na MDC documentation for the audio element, wydaje się, że poprawny sposób to zrobić to poprzez ustawienie właściwości 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; 
    } 
} 

Również byłoby lepiej aby przechowywać odpowiedni element w numerze currSong, a nie jego identyfikator, chyba że używasz tego identyfikatora do czegoś innego.

+0

Dzięki za szybką odpowiedź, działa! – tripleZee

Powiązane problemy