如何检测 soundJS 中是否正在播放任何声音?
我有很多声音会时断时续,有时会合法地相互重叠。我需要一种方法来找出在任何给定时间是否正在播放任何声音,即。就像是
createjs.Sound.isPlaying()
或者
createjs.Sound.status()
目前在 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可能是有意义的。