【问题标题】:HTML5 Video autoplay with sound unmutedHTML5 视频自动播放,声音未静音
【发布时间】:2023-03-31 13:00:03
【问题描述】:

我需要在我的网站上实现本地自动播放视频。尽管如此,我知道当视频没有“静音”属性时,较新的浏览器,即 Chrome、Mozilla 和 Safari,会阻止自动播放。 所以, 有没有办法通过 HTML 或 Javascript 中的任何技巧在 HTML5 中自动播放未静音的视频(带声音)? 因为,当我删除“静音”属性时,视频会停止由浏览器自动播放。

这是我使用的简单 HTML5 代码:

<body>
<div class="video-wrapper">
<video autoplay muted loop playsinline preload="metadata">
  <source src="EDMVideo(Jay)_NEW.webm">
</video>
</div>
</body>

【问题讨论】:

    标签: javascript html video browser autoplay


    【解决方案1】:

    编辑

    添加“hacky”解决方案: 基本上,该政策的意思是用户必须在播放音频之前与网站互动。

    有了这个假设,我们可以通过两种方式自动播放有声视频:

    第一个,也是对用户最公平的一个,是创建一个登陆页面,当他必须与您的网站互动才能开始使用它或点击某些内容时他允许你播放声音。

    第二个(以及更“hacky”的一个)是添加一个不可见的iframe 和一个.mp3 file(将静音)和allow autoplay。这将欺骗浏览器自动播放任何后续视频,即使它已取消静音。

    看起来像这样:

    <iframe src=”https://olafwempe.com/mp3/silence/silence.mp3″ type=”audio/mp3″ allow=”autoplay” id=”audio” style=”display:none”></iframe>
    <video autoplay muted loop playsinline preload="metadata">
      <source src="EDMVideo(Jay)_NEW.webm">
    </video>
    

    不幸的是,没有真正的解决方案。它旨在保护用户,并且没有解决方法。 有一些浏览器可以自动播放声音。但对他们中的大多数人来说,它不起作用,这很好!。

    自 2018 年 4 月起,您无法在 Chrome 上自动播放声音,除非发生以下情况之一(如 google's autoplay policy 所示):

    • 始终允许静音自动播放。
    • 在以下情况下允许自动播放声音:
      • 用户与域进行了交互(点击、点击等)。
      • 在桌面上,用户的媒体参与指数阈值已达到 交叉,表示用户之前播放过有声视频。
      • 在移动设备上,用户已将网站添加到他或她的主屏幕。
      • 顶部框架可以将自动播放权限委托给其 iframe 以允许 自动播放声音。

    你可以阅读更多关于它here

    【讨论】:

    • 您能解释一下“顶级框架可以将自动播放权限委托给其 iframe 以允许自动播放声音”是什么意思吗?以及如何使用它,或者如果可能的话,请举个例子,谢谢
    • 或者有什么方法可以伪造与浏览器的第一次交互以使我的视频自动播放有声?
    • 这意味着如果您有另一个框架从用户那里获得授权(即取消静音),它将传递到下一个框架(如果您告诉它这样做)。
    • 我已经编辑了我的答案并添加了一个解决方案:)
    • 抱歉打扰了!你有像 Pen、Fiddle 或任何其他模型这样的工作示例来尝试它的代码吗?
    猜你喜欢
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-24
    • 2018-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多