调用 Howler onend() 方法的正确方法

Posted

技术标签:

【中文标题】调用 Howler onend() 方法的正确方法【英文标题】:Correct way to call Howler onend() method 【发布时间】:2016-12-06 19:32:14 【问题描述】:

我正在尝试使用 Howler on end 方法在曲目完成后更新某些属性,但它无法正常工作。像这样的代码:

var track_number = 0;

var sound = new Howl(
    src: ["barking.mp3"],
    autoplay: false;
    volume: 0.5;
    onload: function() 
        console.log("LOADED");
    
);

sound.onend() 
    track_number ++;
    $("#xxxjukeboxpicture".attr("src", "/tile" + track_number + ".jpg");
;

每次我尝试添加 sound.onend() 函数并运行它时,浏览器都会抛出一个错误,提示 sound.onend() 行缺少分号。有人可以在这里澄清正确的语法吗?

【问题讨论】:

我认为您可能需要更像sound.onend(function(event)...); 的东西(您所拥有的在语法上不正确) .onend 方法调用中的函数将采用什么事件参数? .onend 仅在曲目结束时调用,因此据我所知不需要额外的事件参数。不过,我将尝试使用嵌套在方法中的函数调用,看看是否有帮助。 【参考方案1】:

您需要执行以下操作:

sound.on('end', function()
  track_number ++;
  $("#xxxjukeboxpicture".attr("src", "/tile" + track_number + ".jpg");
);

基于 Howler 文档:https://github.com/goldfire/howler.js#documentation

【讨论】:

有趣!我一直在查看 Howler 网站,并认为 GitHub 信息与网站信息相同。很好的发现! @TheMasterPriest 我假设您正在查看旧网站,该网站显示 1.x 的文档。新网站是howlerjs.com。【参考方案2】:

这是一个旧线程。但我一直在看嚎叫..

on 事件需要作为可选对象成为新的 howler 对象的一部分。

所以你得到这个错误的原因是因为你没有像这样添加 onend 而是试图独立添加它。我假设 sound.on('end' 有效,因为它使用的是浏览器 API 而不是 Howler 的。

选项和事件的正确方式是:

var sound = new Howl(
    src: ["barking.mp3"],
     preload: true,
    autoplay: false,
    onload: function() 
        console.log("LOADED");
    ,
   onend: function() 
          console.log("ONEND");  
    
);

【讨论】:

以上是关于调用 Howler onend() 方法的正确方法的主要内容,如果未能解决你的问题,请参考以下文章

使用 Howler.js 时有没有办法指示音频下载进度/缓冲区?

在ReactJS中使用Howler读取本地声音文件

DOM4J_ElementHandler示例代码

DOM4J_ElementHandler示例代码

DOM4J_ElementHandler示例代码

如何对动画Armature变成灰色 shader使用