Howler.js - 暂停方法只是静音嚎叫,而不是实际暂停它们

时间:2016-07-11 14:27:20

标签: javascript jquery audio howler.js

这是一个持续问题的一部分:triggering files from an array/for-loop

我遇到的问题是Howls实际上没有暂停,但实际上是“静音”。点击暂停时的嚎叫会静音,但会继续静默运行。我尝试使用.stop(),但得到的结果相同。

我正在使用onend属性,该属性有效并显示.pause()方法无效。当反复点击暂停/播放时,一切都变得非常混乱!

在从数组编写啸叫和相关控制按钮之前,暂停工作完美。这是因为使用了数组,暂停方法已经停止正常工作。

这是一个:fiddle of the current pause issue(控制台日志正在那里工作)

这是js:

var sounds = ['sound1', 'sound2'];
var howls = {};
sounds.forEach(function(sound){
    howls[sound] = new Howl({
        urls: ['http://powellian.com/assets/audio/' + sound + '.mp3', 'http://powellian.com/assets/audio/' + sound + '.ogg'],
        volume: 1,
        onplay: function() {
            console.log('PLAYING: ' + sound);
            $('#' + sound).removeClass('static').addClass('PLAYING');
            $('#' + sound + ' span.play').addClass('hide');
            $('#' + sound + ' span.pause').removeClass('hide');
        },
        onpause: function() {
            console.log('PAUSED: ' + sound);
            $('#' + sound).removeClass('PLAYING').addClass('PAUSED');
            $('#' + sound + ' span.play').removeClass('hide');
            $('#' + sound + ' span.pause').addClass('hide');
        },
        onend: function() {
            console.log('ENDED: ' + sound);
            $('#' + sound).removeClass().addClass('static');
            $('#' + sound + ' span.play').removeClass('hide');
            $('#' + sound + ' span.pause').addClass('hide');
        }
    });

    // PLAY btn
    $('#' + sound + ' span.play').click(function () {
        howls[sound].play();
    });
    // PAUSE btn
    $('#' + sound + ' span.pause').click(function () {
        howls[sound].pause();
    });
});  

对于记录,这是使用Howler v1.1.29。尝试使用v2.0,但由于各种其他原因(例如不会加载数组 - 我不需要2.0但是如果它有帮助则愿意运行此问题的测试)。

任何帮助都会非常感谢并提前感谢。

1 个答案:

答案 0 :(得分:0)

修正了 - 我的不好但是使用v2.0我没有意识到urls需要更改为src所以这样做并且一切正常。

在本地版本上,我将另一个音频文件添加到数组并暂停,其中一个完全正常工作。谢谢你的建议!

这里是updated fiddle using 2.0.0-beta14