即使禁用,Video.js控件也会暂停

时间:2013-07-02 20:41:40

标签: video.js

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

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

2 个答案:

答案 0 :(得分:1)

ctangney的答案仅在使用未压缩(dev)版本的videojs时才有效,因为一旦压缩,lockShowing方法就会重命名(因此就是player())。希望他的issue 556合并申请很快就会被接受。

当在pause()上调用lockShowing时,它会将类vjs-lock-showing添加到controls元素,该元素具有css:display: block !important。这导致了由disable()方法添加的display:none的内联样式被打破。下面是解决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;}

(或者您可以从!important

中移除.vjs-lock-showing

答案 1 :(得分:0)

这是confirmed bug。我在那里看到了一个提议的修复,但它现在仍然是一个开放的拉动请求。在此期间,您可以通过覆盖ControlBar的lockShowing方法来解决这个问题。

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

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

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