【问题标题】:Vimeo video autoplay not working in Safari 11: NotAllowedErrorVimeo 视频自动播放在 Safari 11 中不起作用:NotAllowedError
【发布时间】:2018-03-08 17:11:44
【问题描述】:

自上次 Safari 更新到版本 11 后,一些视频停止播放。 最糟糕的是,有时,比如五次尝试一次,它会起作用。 我认为原因是我的 JS 脚本集成了 Vimeo Player API,但结果是即使 Vimeo 的嵌入链接根本不起作用。

因此,当您在 Safari 11 中打开嵌入视频时,它不会启动并且会完全阻塞。您可以通过打开即看到它 https://player.vimeo.com/video/XXXXXXXX?autoplay=1

在控制台日志中你可以得到类似的东西:

Unhandled Promise Rejection: NotAllowedError (DOM Exception 35): The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission.

【问题讨论】:

    标签: video safari vimeo autoplay


    【解决方案1】:

    您可以将background URL 参数添加到 iframe src:

    <iframe src="https://player.vimeo.com/video/XXXXXXXX?autoplay=1&background=1>
    

    如果您的视频有声音,您还可以再次导出您的视频,完全没有音轨。比你可能根本不需要 background 参数。

    问题是 Safari 11 会阻止所有有声音的视频自动播放。

    即使视频(例如我的情况)没有声级,但它以没有音量的声音导出。地址栏可以看到sovolume图标:

    【讨论】:

    • 您还可以在播放前以编程方式将视频静音。
    • 有关自动静音的提示:stackoverflow.com/questions/26649641/…(查看更新的答案,API 多年来发生了变化)
    • 我刚刚在 html5 视频背景的视频标签中添加了“静音”
    • 我是用video标签做的,但不是用Vimeo
    【解决方案2】:

    因为 safari 不允许自动播放所有视频。 您可以添加mousemove 事件监听器。当鼠标移动时,视频开始播放。 那么你必须移除这个事件。

    【讨论】:

      【解决方案3】:

      iOS 支持:自 iOS 10+ 起支持自动播放视频,但需要标签上的playsinline 属性。

      【讨论】:

      • 这适用于视频标签,但不适用于 iframe。至少在 Safari 中不适合我。
      猜你喜欢
      • 2018-07-27
      • 2018-12-17
      • 2019-01-21
      • 2015-12-14
      • 1970-01-01
      • 1970-01-01
      • 2016-03-16
      • 1970-01-01
      • 2012-02-20
      相关资源
      最近更新 更多