在chrome中模拟audio的loop属性,报错无法正确运行

在Chrome 65.0.3325.181(正式版本) (64 位)中,audio标签的loop属性不生效。编写对应逻辑执行后报错。

代码如下:

//html
<audio id="backgroundAudio" src="./resource/sound/bgMusic.mp3" autoplay loop/>
//js
var audio = $("#backgroundAudio")[0];
audio.addEventListener('timeupdate',()=>{
    if(audio.paused){
        return;
    }
    if(audio.currentTime >= audio.duration - 1){
        audio.currentTime = 0;
        const p = audio.play();
        //添加注释后代码后,可以正确执行
        // if (p && (typeof Promise !== 'undefined') && (p instanceof Promise)) {
        //     p.catch(e => log(e));
        // }
    }
});

报错信息如下:
Uncaught (in promise) DOMException: The play() request was interrupted by a call to pause().

我想知道为什么会出现这个错误,以及为何添加注释代码后可以正确执行了,还有loop属性为何没有生效。

loop属性是因为音频文件有问题,已解决

阅读 3k
1 个回答

亲测loop属性有效。我的版本是 65.0.3325.181(正式版本) (32 位)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题