为了账号安全,请及时绑定邮箱和手机立即绑定

在 JavaScript 异步函数中,用户手势后 iOS 不播放 html5 视频

在 JavaScript 异步函数中,用户手势后 iOS 不播放 html5 视频

蝴蝶不菲 2021-10-29 15:08:01
我想在异步函数中播放 HTML5 视频,作为click事件的处理程序,但 iOS 返回一个NotAllowedError - The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission.. 所有其他浏览器和操作系统都可以无误地播放视频。该视频在页面上可见,并在直接输入 URL 时起作用。该playsinline选项已添加。我不想将视频静音。iOS环境是iOS 12上的Safari,在Safari iOS 11上也可以重现该问题。这是我的 JavaScript 代码:async function StartButton_Click() {    await doSomething();    document.querySelector("#myvideo").play();}document.getElementById("startbutton").onclick = StartButton_Click;await包含该声明是因为我想doSomething()在视频开始之前完成。#myvideo并且#startbutton都在 HTML 中定义。具体#myvideo如下:<video id="myvideo" preload="auto" src="video.mp4" playsinline></video>我希望视频在#startbutton被点击时播放,因为 iOS 政策规定视频可以在用户手势上播放。但是,控制台中会显示上述错误。即使处理程序是一个async函数,视频仍应播放,因为它仍然是用户手势的直接结果。我应该如何修改此代码以使其在 iOS Safari 上播放?
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 654 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信