0

这个主题几乎说明了一切。我有一个关闭控件的 Video.js 实例(也就是标记中没有“控件”)。它工作得很好,但是当我暂停视频时(使用我的外部自定义按钮和 myPlayer.pause() 视频上的控件会淡入。当我点击播放时,它们会再次淡出。

这绝对不是它应该工作的方式。有谁知道这是一个错误,还是我只是错过了一些东西?

4

2 回答 2

1

ctangney 的答案仅在使用未压缩(开发)版本的 videojs 时有效,因为一旦压缩,lockShowing 方法就会被重命名(因此 player() 也是如此)。希望他对问题 556的合并请求将很快被接受。

当在 pause() 上调用 lockShowing 时,它会将类添加vjs-lock-showing到具有 css: 的控件元素中display: block !important。这导致display:none由 disable() 方法添加的内联样式被击败。这是解决 CSS 特异性问题的解决方法,并适用于压缩和未压缩的 videojs:

var v = videojs("video", {});
if(!v.controls()) {
  v.controlBar.el().className = v.controlBar.el().className + ' vjs-controls-disabled';
}

然后添加到 css 文件的底部:

.vjs-controls-disabled {display: none !important;}

(或者你可以删除!importantfrom .vjs-lock-showing

于 2013-07-05T18:58:25.007 回答
0

这是一个已确认的错误。我在那里看到了一个提议的修复,但目前它仍然是一个开放的拉取请求。同时,您可以通过覆盖 ControlBar 的 lockShowing 方法来解决此问题。

var vid = videojs("video", {});

if (!vid.player().controls()) {
  vid.controlBar.lockShowing = function(){};
}

...因为(当前)控制栏将侦听器附加到“暂停”事件并调用 lockShowing()。

于 2013-07-03T18:04:12.610 回答