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

Posted

技术标签:

【中文标题】在我将自动播放的首选项更改为“允许所有自动播放”之前,javascript 中的视频播放() api 在 safari 中不起作用【英文标题】:Video play() api in javascript is not working in safari until I change the preference of autoplay to 'Allow all Autoplay' 【发布时间】:2018-07-15 16:01:12 【问题描述】:

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

我们描述了下面给出的视频元素。

<video id="videoID" preload="none"  tabindex="1"></video>

这在 Chrome 上运行良好,但视频无法在 Safari(版本:11.0.3)上播放,并抛出 Unhandled Promise Rejection 错误,如下所示。

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

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

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于在我将自动播放的首选项更改为“允许所有自动播放”之前,javascript 中的视频播放() api 在 safari 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Google Play 服务版本自动更改为 11.8

使用连接池一段时间后自动提交更改为 TRUE

MVC5中的自动完成下拉菜单?

EXTJS 5:为啥 Ext.grid.Panel 没有 stripRows 效果,在我将主题从 Neptune 更改为清晰之后

为啥我的电子表格以 .xlsx 扩展名保存,但在我将其更改为 .xls 之前不会发生?

将播放按钮更改为单击时暂停