我刚刚创建了视频对象,然后在将视频对象添加到文档中之前添加了两个属性,例如 source 和 muted ,最后使用方法 play()播放添加的视频,如下所示。
let v = document.createElement("video");
v.setAttribute("src","videoplayback.mp4");
v.setAttribute("muted","muted");
document.body.appendChild(v);
v.play().catch((e)=>{ console.log(e)}); // it returns DomException why?
那么有人可以告诉我哪里出了问题或为我解决这个问题。
注意:显示了一个视频图像,但它没有运行。.
答案 0 :(得分:1)
这是Google Chrome浏览器中新增的一项功能-在用户与页面进行积极互动(点击)之前,无法播放媒体(例如视频和声音)。只需添加一个created
变量,将所有代码放入click
处理程序中,然后在created
为false
的情况下创建视频,然后将created
设置为{{ 1}}:
true
答案 1 :(得分:0)
这似乎很明显,但是,请确保您没有安装阻止视频播放的扩展程序。就我而言,我最近完成的一个站点运行正常。我回过头去查看该站点并收到以下错误消息:VM476:96未捕获(承诺)DOMException:用户代理不允许使用play方法。
几分钟后,我意识到我最近安装了AutoplayStopper,这当然阻止了视频运行自动播放。
答案 2 :(得分:0)
这是因为您的浏览器默认设置。它已设置为不播放任何音频或视频。 Firefox: https://support.mozilla.org/en-US/kb/block-autoplay
答案 3 :(得分:0)
默认情况下,不仅在 Chrome 中,而且在 Mozilla Firefox 和其他浏览器中,如果视频包含音频且未静音,则视频自动播放命令将被拒绝。 解决它的唯一方法是使用 javascript 强制自动播放音频。 但是,如果您将视频标签设置为 muted="muted" 并自动播放,即使您已将浏览器设置为不自动播放视频,视频仍会自动播放。