Safari 11 上的视频自动播放

Posted

技术标签:

【中文标题】Safari 11 上的视频自动播放【英文标题】:Video autoplay on Safari 11 【发布时间】:2019-01-21 01:16:08 【问题描述】:

您好,您已注意到视频不再在 safari 11 上自动播放。下面是我的代码,它可以在 Chrome 上运行,因为它必须被静音。它只显示海报图像。任何帮助。

<video  poster="poster_url.png" autoplay muted playsinline>
<source src="video_url.mp4" type="video/mp4">
</video>

【问题讨论】:

【参考方案1】:

以下在 OSX 10.12.6 上的 Safari 11.1.2 上为我自动播放

<video  poster="poster_url.png" autoplay muted playsinline>
<source src="http://download.blender.org/peach/trailer/trailer_480p.mov" type="video/mp4">
</video>

规则确实经常变化,用户或组织也可以设置自己的偏好,因此 Safari 团队建议您始终检查代码以查看视频是否能够自动播放:

var promise = document.querySelector('video').play();

if (promise !== undefined) 
    promise.catch(error => 
        // Auto-play was prevented
        // Show a UI element to let the user manually start playback
    ).then(() => 
        // Auto-play started
    );

在撰写本文时这里有更多详细信息:

https://webkit.org/blog/7734/auto-play-policy-changes-for-macos/

【讨论】:

@PaulSlocum - 你的意思是代码 sn-p?我刚刚在 Safari 12.01 和 OSX 10.13.16 上对其进行了测试,它对我有用。您是否可能在浏览器中设置了一些偏好来停止自动播放?视频有白色边框,因此如果您的浏览器窗口很小以查看视频本身,则可能值得滚动该框。 停止自动播放是最新版本的默认设置。告诉所有访问您网页的人进入设置并更改设置显然不是一种选择。您的答案是之前的标准答案,但现在不适用于默认浏览器设置。 @PaulSlocum Safari 12.0.1 是最新的 Safari 版本,我刚刚在两台不同的机器和上面的 sn-p 上验证了它,加上一个使用此代码作为额外检查的简单测试站点,自动播放没有对默认浏览器设置的任何调整。也许我误解了你的cmets? @PaulSlocum - 为了完整性,还在运行最新 Safari 的 ios 11.2.6 上进行了测试,并且它也会在那里自动播放。 它在我使用的任何版本的 Safari 11 中都无法使用,但它似乎在 MacOS 和 iOS 上的 Safari 12 中都可以使用

以上是关于Safari 11 上的视频自动播放的主要内容,如果未能解决你的问题,请参考以下文章

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

小米手机safari怎么设置自动播放?

HTML5 视频自动播放不适用于 slick.js

如果定位在视口之外,html5 视频不会在 OSX Safari 中自动播放

视频自动播放不能正常工作 chrome 和 safari?

在 Safari iOS 14.2 上自动播放视频 HTML