解决方法: audio.load() let playPromise = audio.play() if (playPromise !== undefined) { playPromise.then(() => { audio.play() }).catch(()=> { }) } 原因: 从Chrome50开始,对<video>或<audio>元素的play()调用返回一个Promise。 一个异步返回单个结果的函数。如果回放成功,Promise就会实现,而play事件也会同时触发,对应执行.then。 如果回放失败,Promise将被拒绝,同时会有一个错误消息解释失败,对应执行.catch。 错误发生的过程为: 1.media.play() 开始异步加载video/audio内容。 2.media.pause() 在video/audio没有准备好时中断加载。 3.media.play() 此时进行继续播放,报错。
原文地址:https://www.cnblogs.com/Man-Dream-Necessary/p/9952415.html
时间: 2024-10-02 20:21:08