我正在寻找一种简单的方法来检查SoundManager2当前是否正在播放声音。我希望有一个类似" SoundManager.isSoundPlaying"的功能。但是我没有看到这个功能。
答案 0 :(得分:3)
在SoundManager 2中,有一个名为“playState”的动态属性,它返回这些值:
表示声音当前播放状态的数字值。
请注意,在缓冲和自动播放状态下,1可能无法始终保证听到声音。
所以你可以这样做:
var myAudio = soundManager.createSound({
id: 'myAudioId',
url: "/audiofile/url.mp3",
autoPlay: true
});
if (myAudio.playState === 1) {
// audio playing (or buffering)
}
中的更多信息
答案 1 :(得分:1)
" playState"的主要问题即使声音低于"暂停"它也会返回1状态。 解决方案可能是检查持续时间是否为空,因为一旦加载声音,持续时间始终为一个值,然后还要检查声音是否已暂停,因为即使暂停声音后持续时间值也会保留。 解决方案可以是:
// assuming s is the soundmanager object
// playing status
if (s.duration&&!s.paused) {
}
else {
}
答案 2 :(得分:0)
我不认为声音管理员有这样的变数..
我建议使用全局变量" isPlaying"默认为false,并添加" isPlaying =!isPlaying"在你的播放/暂停点击事件中。
答案 3 :(得分:0)
它实际上有一种说法,如果它暂停了。这基本上是一回事。 只是做
if(!_audioInstance.paused){
// is playing
}