【问题标题】:Playing Delayed Sounds In Browser With Javascript使用 Javascript 在浏览器中播放延迟的声音
【发布时间】:2011-10-13 16:15:30
【问题描述】:

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

以前声音会混在一起,因为我会这样调用函数:

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

我发现我必须通过删除 () 使其成为函数引用点。在那种情况下,我似乎无法向该参考点发送参数。

后来,在浏览器错误和意外静音之后,我从兔子洞里摔了下来,我厌倦了我做事的方式。我认为这不是最佳选择。

我需要一种无需遵守 SetTimeout 的好方法来播放来自任何位置(不,我不是盗链)的声音文件。我正在考虑与 jQuery 的 delay() 函数有关。

【问题讨论】:

    标签: php javascript jquery settimeout


    【解决方案1】:

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

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

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

    假设team_id 是您想玩的合适团队的ID,并且team_id 在您调用setTimeout 的范围内可用。如果没有在上下文中查看完整代码,很难查明任何潜在问题。

    【讨论】:

    • 我了解,并且我可以确认声音已被浏览器接受,但只能通过使用硬编码方法的各种糟糕的解决方法。 (同样,我在浏览器中听不到) 问题主要在于我现在将添加让每个销售员拥有自己的声音的能力,而我只是没有硬编码它。此外,如果我执行 play(),似乎所有声音都会一起播放,因为它们需要一个参考函数。
    • 我不知道你所说的“参考函数”是什么意思。您能否发布更多代码 - 特别是定义 soundsteam_id 的部分?
    猜你喜欢
    • 1970-01-01
    • 2023-03-04
    • 2011-05-09
    • 2013-06-08
    • 1970-01-01
    • 1970-01-01
    • 2020-04-15
    • 2020-11-14
    • 2012-06-20
    相关资源
    最近更新 更多