声音播放/停止/暂停

12

我正在开发一个优秀的JavaScript库。我可以使用以下代码播放声音。

var soundPlayer = null;

function playSound(){

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

}

我该如何停止和暂停这个音频?当我像这样尝试时:

soundPlayer.pause();
或者
soundPlayer.stop();

但我得到了这个错误:

Uncaught TypeError: soundPlayer.stop is not a function

我该怎么做?

1个回答

19

如果你改变那个:

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

对于那个:

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

您的暂停功能将正常工作。问题在于您把“播放”功能赋值给了soundPlayer。现在,SoundPlayer不是一个音频对象。

请使用以下方法代替stop():

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

我猜它的工作方式是一样的。


1
是的,如果您更改我提到的内容,这两个函数将起作用。您的soundPlayer现在是一个名为“play”的函数,而不是Audio对象。这就是为什么停止和暂停不起作用的原因。 - 5ka
1
我用了你的代码来修改了我的代码。现在,.pause()函数能够正常工作了。谢谢! 但是stop()函数无法正常工作。我该怎么办呢? - jsawyer
3
尝试使用 soundPlayer.pause(); soundPlayer.currentTime = 0; - 5ka
有没有像stop()这样的函数?不过,soundPlayer.currentTime = 0是有效的。 - Toto Briac

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接