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

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

阅读 5.4k
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中取消。

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