我正在使用php生成创建和播放声音的javascript 像:
$playsound .= "var $sound = new Audio('http://$siteurl/sounds/$sound.ogg'); soundplayer($sound $whentostart, $whentostop); ";
soundplayer是一个javascript函数,它接受声音名称,以及何时开始和停止作为参数的持续时间。
我遇到的问题是我有一组声音播放器(带有参数)我想一起玩...即某些组同时播放声音。然后我需要在之后的某个时间间隔开始的其他组。
例如: 这个小组扮演: 声音播放器(带参数) 声音播放器(带参数)
介于1至4秒之间的某段时间
然后这个小组玩: 声音播放器(带参数) 声音播放器(带参数)
然后重复多个小组
我可以在jquery或javascript中做什么来将每个函数调用包装到soundplayer()组中,以使每个组在两者之间以特定间隔播放?
答案 0 :(得分:1)
您可以使用setTimeout
(链接)或setInterval
(在您停止之前重复)来执行此操作。
在JavaScript中,从概念上讲,为了简单起见:
// Put the things you want to do in a function
function doThingsInOrder() {
doOneThing('someArgument');
doAnotherThing();
doAThirdThing('someArgument');
// Maybe one of them should be delayed a bit
setTimeout(doADelayedThing, 200); // 200 = 200ms = 1/5th second
}
// Call the function every four seconds, forever
setInterval(doThingsInOrder, 4000);
这是setInterval
版本。 setTimeout
版本只涉及doThingsInOrder
在最后通过setTimeout
调用自己:
// Put the things you want to do in a function
function doThingsInOrder() {
doOneThing('someArgument');
doAnotherThing();
doAThirdThing('someArgument');
// Maybe one of them should be delayed a bit
setTimeout(doADelayedThing, 200); // 200 = 200ms = 1/5th second
// Set up next call
setTimeout(doThingsInOrder, 4000);
}
// Start the process off
setTimeout(doThingsInOrder, 4000);