Vimeo视频在Safari 11中无法自动播放:NotAllowedError。

6
自从Safari更新到版本11后,一些视频无法正常播放。 最糟糕的是有时候,比如五次尝试中只有一次会成功播放。 我认为原因是我的JS脚本集成了Vimeo Player API,但实际上即使使用Vimeo的嵌入链接也完全无法工作。
因此,在Safari 11中打开嵌入式视频时,它不会启动并完全阻塞。您可以通过打开例如https://player.vimeo.com/video/XXXXXXXX?autoplay=1来查看它。
在控制台日志中,您可能会得到类似以下内容的信息:
Unhandled Promise Rejection:NotAllowedError(DOM Exception 35):当前环境中用户代理或平台不允许该请求,可能是因为用户拒绝了权限。
3个回答

5

您可以在iframe的src中添加background URL参数:

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

如果您的视频有声音,您也可以将视频重新导出为没有任何声音轨道的视频。那么您可能根本不需要background参数。
问题在于,如果视频中有声音,Safari 11会阻止所有自动播放的视频。

enter image description here

即使是视频,像我的情况一样,没有声音级别,但它被导出为带有无音量的声音。您可以在地址栏中看到sovolume图标:

enter image description here


您还可以在播放之前编程静音视频。 - szatmary
有关自动静音的提示:https://dev59.com/6V8d5IYBdhLWcg3wlzD6(请查看更近期的答案,API在多年内已发生变化) - murb
1
我刚刚在HTML5视频背景的标签中添加了“muted”。 - Kai Qing
我已经使用视频标签制作了它,但没有使用 Vimeo。 - Mladen Janjetovic

0

iOS支持:自动播放视频在iOS 10+上得到支持,但需要在标签中添加playsinline属性。


这适用于视频标签,但在Safari中对iframe无效。至少对我来说是这样。 - Mladen Janjetovic

0

由于Safari不允许自动播放所有视频。 您可以添加mousemove事件监听器。当鼠标移动时,视频开始播放。 然后您必须删除此事件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接