Vimeo 视频自动播放在 Safari 11 中不起作用:NotAllowedError

Vimeo video autoplay not working in Safari 11: NotAllowedError

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

因此,当您在 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.

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

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

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

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

即使像我这样的视频没有音量,但导出时有声音但没有音量。您可以在地址栏中看到 sovolume 图标:

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

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