用Javascript在浏览器中播放延迟的声音

Playing Delayed Sounds In Browser With Javascript

本文关键字:延迟 声音 播放 Javascript 浏览器      更新时间:2023-09-26

我们有几个销售团队。对于这些销售团队,我们有一个排行榜。每当其中一人成交时,扬声器就会通过浏览器播放声音,浏览器每两分钟刷新一次页面并检查差异。一旦发现差异,它就会播放团队的声音。

以前,这些声音会含糊不清,因为我这样调用函数:

setTimeout(sounds[team_id].play(), delayTime);

我发现我必须通过删除()使其成为函数参考点。在这种情况下,似乎没有办法向参考点发送实参。

在经历了浏览器的bug和意外的mutings之后,我对自己做事的方式感到厌倦了。我不认为这是最佳的。

我需要一个好方法来播放声音文件从任何位置(不,我不是热链接),不需要坚持SetTimeout。我正在考虑与jQuery的delay()函数有关。

jQuery的延迟函数是基于setTimeout的,任何其他库提供的延迟或基于时间的功能也是如此。

我不明白你为什么会遇到麻烦——闭包应该能够处理你描述的情况:

setTimeout(function () {
  sounds[team_id].play()
}, delayTime);

假设team_id是您想要播放的声音的团队的id,并且team_id在您调用setTimeout的范围内可用。在没有看到上下文中的完整代码的情况下,很难确定任何潜在的问题。