video 标签设置自动播放时,如何判断有没有被浏览器禁止其自动播放

一开始进入页面,不管视频有没有自动播放,video.paused 永远都是 true,所以 video.paused 是行不通的。
视频自动播放时,可以用 video.oncanplay = function (){ xxx } 来执行业务逻辑,问题在于视频没有自动播放时,这个时候如何去监听这一状态并执行业务逻辑。

阅读 5.6k
2 个回答

自动播放,你可以通过

video.play() // 返回一个 promise

来实现,如果自动播放失败了,会返回一个 rejected 的 promise,譬如浏览器禁止了,会返回

NotAllowedError
The user agent (browser) or operating system doesn't allow playback of media in the current context or situation. This may happen, for example, if the browser requires the user to explicitly start media playback by clicking a "play" button.

文档

timeupdate?播放中会触发的事件。

当准备就绪之后,搞个定时器,timeupdate中取消。

推荐问题