这个主题几乎说明了一切。我有一个关闭控件的Video.js实例(标记中也没有“控件”)。它工作得非常出色,但是当我暂停视频时(使用我的外部自定义按钮和myPlayer.pause(),视频上的控件会重新显示。当我点击播放时,它们会再次淡出。
这绝对不是它应该工作的方式。有谁知道这是一个错误,还是我错过了什么?
答案 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()。