【发布时间】:2020-05-12 08:43:40
【问题描述】:
目前我为通用 nuxtjs/vuejs 应用程序创建了一个 html5 视频播放器组件。 视频标签有一个自动播放属性,可以在导航到视频后开始播放视频。 通常浏览器不会在页面加载后直接这样做,这是被禁止的。 我需要在我的组件中使用一个变量来了解自动播放是否可以根据此信息设置元素样式。 换句话说:如果当前页面仅在客户端呈现,则该变量应为 true,但如果首先在服务器端呈现,则该变量为 false。
无法使用“window.history.length”,因为刷新后也无法自动播放,尽管这不会影响历史长度。
此外,不能在“created”方法中设置变量,因为它也会在服务器端和客户端调用。
【问题讨论】:
-
也许我们应该在继续之前看到一个代码框最小示例?
-
一个例子真的很简单。它只是一个带有视频标签和自动播放属性的默认 nuxtjs 项目。 codesandbox.io/s/great-frog-ue5j8?file=/pages/index.vue 如果你用firefox加载页面,你会在控制台得到这个错误:“NotAllowedError: the play method is not allowed by the user agent or the platform in the current context,可能是因为用户拒绝了权限。”目标是有一个变量来知道它是否可能,这样我就可以应用初始样式。
-
让我稍后检查
-
添加了对上述错误的解释——火狐需要用户“选择播放”才能播放。防止垃圾网站自动播放视频
-
是的,很明显。对不起,但答案是没有用的。如果您知道如何在当前路由的初始渲染时获取媒体是否可播放的信息,请发表评论。