2017-04-02 299 views
3

我正在開發一個健全的JavaScript庫。我可以用下面的代碼播放聲音。JavaScript聲音播放/停止/暫停

var soundPlayer = null; 

function playSound(){ 

soundPlayer = new Audio(soundName).play(); 

} 

如何停止和暫停此音頻?當我嘗試這樣的:

soundPlayer.pause(); 

soundPlayer.stop(); 

,但我得到這個錯誤:

Uncaught TypeError: soundPlayer.stop is not a function 

我該怎麼辦呢?

回答

1

如果更改:

soundPlayer = new Audio(soundName).play(); 

要的是:

soundPlayer = new Audio(soundName); 
soundPlayer.play(); 

您的暫停將工作。問題是你給soundPlayer分配了「播放」功能。 SoundPlayer現在不是一個音頻對象。

而是停止()使用方法:

soundPlayer.pause(); 
soundPlayer.currentTime = 0; 

它的工作原理一樣,我猜。

+0

它的工作。我的問題是停止/暫停動作。 – jsawyer

+0

是的。如果你改變我提到的,這兩個函數將會起作用。您的soundPlayer現在是「播放」功能,而不是音頻對象。這就是停止和暫停不工作的原因。 – 5ka

+0

我用你的代碼改變了我的代碼。現在,.pause()函數正在工作。謝謝!但是stop()函數不起作用。我該怎麼做? – jsawyer