2011-02-07 29 views
5

Tôi có một chức năng gắn liền với sự kiện onClick. Nó phải chơi một bài hát. Nếu có một bài hát đã chơi, nó phải dừng bài hát hiện tại và bắt đầu chơi bài hát mới. Vấn đề duy nhất là theo như tôi biết chỉ có một phương thức tạm dừng và điều đó có nghĩa là bài hát trước đó sẽ tiếp tục từ vị trí bị tạm dừng chứ không phải từ đầu. Có cách nào xung quanh điều này (giống như một .stop() phương pháp)?Bắt đầu và dừng Âm thanh trong Javascript

Dưới đây là mã của tôi:

var currSong=""; 

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

Đây có phải là API âm thanh HTML5 không? –

+0

Tôi đoán, đó là một thẻ

+0

API có tại đây: http://www.w3.org/TR/html5/video.html#media-elements –

Trả lời

6

Từ nhìn vào MDC documentation for the audio element, dường như cách chính xác để làm điều này là bằng cách thiết lập currentTime tài sản:

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; 
    } 
} 

Ngoài ra, nó sẽ tốt hơn để lưu trữ phần tử có liên quan trong số currSong, thay vì ID của nó, trừ khi bạn đang sử dụng ID cho một thứ khác.

+0

Cảm ơn bạn đã trả lời nhanh, nó hoạt động! – tripleZee

Các vấn đề liên quan