HTML5音频播放器随机播放

11

我正在HTML5音频中实现音效,但过一会儿后,它就停止播放任何声音。 文件类型是正确的,因为它一开始就能正常播放,但后来似乎放弃了。

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

有没有更好的方法来保证声音持续播放?

这是我的实现链接。通过多次按下空格键直到它最终放弃(也可以射击灯光以增加声音)轻松复制。http://craftyjs.com/elevatoraction/

我在Chrome的最新版本(8.0)中遇到了这个问题。

编辑: 我按照Gaurav的建议只播放每个声音文件的同一个实例,但是仍然存在类似的问题。它会任意停止播放。

编辑2: 我刚刚注意到,每当我尝试播放声音时,networkState总是1,根据this的说法,这意味着它还没有完全加载。奇怪的是,即使它播放时,networkState也始终是1


1
你应该指定在哪些浏览器版本和操作系统版本上出现了问题。 - Mike Clark
1个回答

6

哦,原来是个bug。但我该如何同时播放相同的声音呢? - Louis
那么你必须使用多个音频对象。并且你需要管理它们,以便创建实际所需的最小数量。无论如何,直到错误被修复。 - Gaurav
听起来不错。这是否意味着我需要创建每个文件的2到3个音频对象并检查哪些正在播放。说实话,我很难找到好的文档资料。 - Louis
@Louis 正确。我正在为此编写一个库,我使用的方法(为了速度)是有两个列表,一个用于对象本身,另一个用于空闲对象。基本上,您必须获取空闲对象列表的第一项,从列表中删除它,然后播放它。添加一个onended回调函数,一旦完成就将其添加回列表中。当然,如果没有可用的空闲声音,您可以创建一个新的“Audio”对象。 - MiJyn

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