在我将自动播放的首选项更改为“允许所有自动播放”之前,javascript 中的视频播放()api 在 safari 中不起作用

kad*_*ina 5 html javascript safari video

我们正在实施应该跨浏览器工作的网络播放器。我们通过java脚本设置视频源并调用play()在浏览器上播放视频。

我们描述了视频元素,如下所示。

<video id="videoID" preload="none"  tabindex="1"></video>
Run Code Online (Sandbox Code Playgroud)

这在 Chrome 上运行良好,但视频没有在 Safari 上播放(版本:11.0.3)并抛出未处理的承诺拒绝错误,如下所示。

Unhandled Promise Rejection: NotAllowedError (DOM Exception 35): 当前上下文中用户代理或平台不允许该请求,可能是因为用户拒绝了权限

如果我将 safari 中的自动播放设置更改为“允许所有自动播放”,则视频播放正常,没有任何问题。

我尝试将 autoplay 属性也添加到 Video 元素,但它不起作用。

期望是用户不应该做任何事情来播放视频。当用户访问 URL 时,它应该自动播放视频(带音频),无需任何用户操作。任何人都可以让我知道是否有办法在javascript中实现这一点?

小智 6

据我所知,这不能仅通过 Javascript 来实现。在 safari(没有您提到的设置)上,视频只能通过用户交互启动。这是为了避免违背用户意愿自动播放视频。