1

如何检测 soundJS 中是否正在播放任何声音?

我有很多声音会时断时续,有时会合法地相互重叠。我需要一种方法来找出在任何给定时间是否正在播放任何声音,即。就像是

createjs.Sound.isPlaying()

或者

createjs.Sound.status()

4

1 回答 1

2

目前在 SoundJS 中没有这样的东西。

您可以自己查找,但它涉及挖掘私人成员,不建议这样做,并且可能会破坏内容。这是一个快速示例:

function countActiveSounds() { 
    var s = createjs.Sound.activePlugin, 
        count = 0; 
    for (var n in s._soundInstances) { 
        var inst = s._soundInstances[n];
        for (var i=0, l=inst.length; i<l; i++) {
            var p = inst[i];
            if (p.playState == "playSucceeded") { count++; }
        }
    }
    return count;
}

这涉及读取私有_soundInstances哈希,并检查声音状态是否为“playSucceeded”。一旦完成,状态将变为“playFinished”。

再次,谨慎使用它:)

将功能请求记录到SoundJS GitHub可能是有意义的。

于 2016-01-12T23:37:17.813 回答