2010-12-14 266 views
11

我在HTML5音频中实现声音效果,但过了一段时间,它只是停止播放任何音频。文件类型是正确的,因为它启动正常,但似乎放弃。HTML5音频随机播放

var sound = new Audio(url); 
function play() {   
    sound.play(); 
} 

有没有更好的方法来做到这一点,所以它一直播放声音?

这是我的实施的链接。易于重复按空格键很多,直到它最终放弃(也射灯添加声音)。 http://craftyjs.com/elevatoraction/

这在Chrome的最新版本时,我(8.0)

编辑:我一样高拉夫建议,只播放的每一个声音文件的同一个实例,但同类问题存在。它会任意停止播放。

编辑2:我刚才注意到,每当我尝试播放声音时,networkState总是1根据this这意味着它不能完全加载。这是奇怪的,因为它仍然有时播放,即使它播放networkState总是1

+1

。 – 2010-12-14 01:10:54

回答

6

不要在每次你想播放声音时重新创建一个音频对象,重复使用相同的资源。

var sound1 = new Audio(url); 
function playSound1() { 
    sound1.play(); 
} 

我觉得这是你应该指定浏览器版本(S)和你再现问题上的操作系统版本(S)相关的bug http://code.google.com/p/chromium/issues/detail?id=57070

+0

哦,所以这是一个错误。我怎么会同时播放相同的声音? – Louis 2010-12-14 02:05:07

+0

那么你必须使用多个音频对象。而且你必须管理它们,以便创建你实际需要的最小数量。无论如何,直到错误得到解决。 – Gaurav 2010-12-14 02:16:23

+0

听起来不错。这是否意味着我必须为每个文件创建大约2或3个音频对象并检查哪些正在播放。我很难找到很好的文档来说实话。 – Louis 2010-12-14 02:20:13