【问题标题】:Howler.js - pause method only Muting howls, not actually Pausing themHowler.js - 仅暂停方法 静音嚎叫,而不是真正暂停它们
【发布时间】:2016-07-11 14:27:19
【问题描述】:

这是一个正在进行的问题的一部分:triggering files from an array/for-loop

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

我正在使用onend 属性,该属性有效并表明.pause() 方法不起作用。当重复点击暂停/播放时,一切都会变得非常混乱!

在从数组中编写嚎叫声和相关控制按钮之前,暂停效果很好。自从使用了数组后,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,但如果它有帮助,我愿意运行这个问题的测试)。

任何帮助将不胜感激,并提前致谢。

【问题讨论】:

  • 2.0 不会加载数组是什么意思?你把urls改成src了吗?
  • No 一直是urls,但刚刚在本地更新了凉亭,2.0 现在工作正常,尽管这里列出了同样的问题。之前已更新,错误消息是该数组无法加载。我已经离开了 1.1.29 的小提琴,因为不确定从 cdnjs 使用哪个 2.0-beta* 链接
  • 希望澄清这个问题:当pause 被击中时,声音会静音,但仍然有效地静默运行并触发onend - 如果您再次快速触发play,它只会导致onend 成为发射了两次。这发生的次数与您触发play 的次数一样多,声音实际上是在播放/分层,而不是暂停。 console.logs 说明了这一点。希望对你有帮助,谢谢

标签: javascript jquery audio howler.js


【解决方案1】:

已修复 - 我的错,但在 v2.0 中,我没有意识到需要将 urls 更改为 src,所以这样做了,一切正常。

在本地版本中,我向阵列添加了另一个音频文件,并且暂停和结束都可以正常工作。谢谢你的建议!

这是updated fiddle using 2.0.0-beta14

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-31
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    相关资源
    最近更新 更多