我有一个脚本,除其他外,使用Audio.play()
播放声音。
这是一个片段 - 仅供参考我有大约十二个“给”div我总共加载:
$("#give1").delay( 20000 ).fadeIn(1000,function(){
var sample = new Audio("sound.ogg");
sample.play();
$(this).delay( 8000 ).animate({top: '+=300px'}, 1000);
});
$("#give2").delay( 110000 ).fadeIn(1000,function(){
var sample = new Audio("sound.ogg");
sample.play();
$(this).delay( 8000 ).animate({left: '+=400px', top: '-=0px'}, 1000);
});
$("#give3").delay( 50000 ).fadeIn(1000,function(){
var sample = new Audio("sound.ogg");
sample.play();
$(this).delay( 8000 ).animate({left: '-=400px', top: '-=0px'}, 1000);
});
...and so on.
然而,当下一个sample.play开始时(即在“#give2”淡入之后),前一个声音结束并且新声音开始。
我想要的用于声音分层 - 在新声音开始时,先前的声音应该继续播放。这会产生一种效果,在很多情况下,你会听到几个声音在彼此之上播放,就像声音的杂音一样。
我的格式是否有问题,或者'sample.play'是否只允许在任何给定时间通过浏览器播放一个声音?有没有办法达到这个效果 - 可能有不同的功能?
编辑:我想到的一个可能的解决方案是在开头加载一个.ogg文件,它与脚本和“层”本身同步;我可以使用Audacity或其他东西来循环和分层声音,并将时间与我指定的延迟相匹配。声音可能会变得不同步(即调用.ogg文件时缓慢下载)。
答案 0 :(得分:0)
我打算将此标记为已解决 - 看起来样本按预期分层。我完整地留下了我的潜在解决方案来帮助遇到这个问题的其他人。