到目前为止,我在这方面的所有研究和努力都遇到了障碍:目前有什么方法可以在 iOS 中的 Safari 上自动播放视频吗?
有些人提到了视频转码或使用
playsinline
(适用于 Android),但对 iOS / Safari 没有任何作用。
编辑:更新了 2024 年的标题,因为我们得到了一个可能有帮助的新答案。
我相信以下仍然是iOS当前的图片:
对于满足以下条件的元素,元素现在将遵循自动播放属性:
- 如果元素的源媒体不包含音轨,则无需用户手势即可自动播放元素。
- 元素也可以在没有用户手势的情况下自动播放。
- 如果元素在没有用户手势的情况下获得音轨或取消静音,则播放将暂停。
- 元素仅在屏幕上可见时才会开始播放,例如当它们滚动到视口中、通过 CSS 使其可见并插入到 DOM 中时。
- 如果元素变得不可见,例如滚动到视口之外,则元素将暂停。
来源:https://webkit.org/blog/6784/new-video-policies-for-ios/
这还要求视频元素具有
playsinline
属性。
所以支持自动播放视频,但它是有限的,因此可能无法满足您的特定需求。
另一个注意事项 - 如果您的用例是用于 Web 视图而不是常规浏览器,那么您拥有更多控制权。请参阅
wkwebviewconfiguration
的文档,特别是 mediaTypesRequiringUserActionForPlayback
:
最近遇到同样的问题,ios 恰好由于电池/省电模式场景而阻止自动播放。尝试了一切,但下面的组合似乎对我来说效果很好。除了静音和playsInline 之外,尝试在源中添加 type="" 。
<video loop autoPlay muted playsInline>
<source src="" type="video/mp4"/>
</video>