我有一个javascript加载的mp3文件,如下所示:

var q=new Audio('path/to/file');
var restart=function(){
  q.currentTime=0;
  q.play();
};
q.addEventListener('canplaythrough',function(){
  setInterval(9000,restart);
});

音频文件只有大约5秒钟长。第一次调用restart没问题。但是,在9秒后的下一个 call 中,音频重新启动并播放,但浏览器崩溃。甚至控制台崩溃,因此我无法检查任何内容或读取任何错误。我正在使用最新版的chrome。我已经用几个文件测试了此代码,以确保它不是损坏问题。

最佳答案

似乎设置cuurentTime会触发canplaythrough事件。我通过在触发后删除事件处理程序解决了该问题:

var q=new Audio('path/to/file');
var restart=function(){
  q.currentTime=0;
  q.play();
};
var ff=function(){
  setInterval(9000,restart);
  q.removeEventListener('canplaythrough',ff);
};
q.addEventListener('canplaythrough',ff);

关于html - 为什么我的音频代码崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24701329/

10-13 04:06