VideoJS:保持控件可见

Posted

技术标签:

【中文标题】VideoJS:保持控件可见【英文标题】:VideoJS : keep controls visible 【发布时间】:2012-11-03 06:30:15 【问题描述】:

我喜欢 videoJS,但找不到让控制栏始终可见的方法(播放时不会淡出)。 我搜索了相关信息并找到了a topic about it,他们建议像这样覆盖函数隐藏:

/覆盖控件自动隐藏 fn/

conceal = function() /* 什么都没有 */ ;

但这可能已经过时了,因为它在这里不起作用。 (版本 3.2.0)

有谁知道我如何做到这一点?

非常感谢!

【问题讨论】:

【参考方案1】:

这里又多了一点死灵术......

虽然 Peter Kitts 的最后一个答案可以正常工作,但另一个选项是将 inactivityTimeout 设置为 0,这将完全禁用不活动超时。

<link href="http://vjs.zencdn.net/4.12/video-js.css" rel="stylesheet">
<script src="http://vjs.zencdn.net/4.12/video.js"></script>

<video id="my_video_1" class="video-js vjs-default-skin" controls preload="auto"   
  data-setup=' "inactivityTimeout": 0 '>
  <source src="http://vjs.zencdn.net/v/oceans.mp4" type='video/mp4'>
  <source src="http://vjs.zencdn.net/v/oceans.webm" type='video/webm'>
</video>

【讨论】:

我认为你的方法是最好的,使用 videojs 功能之一保持控件可见。在我看来,CSS 更像是一种解决方法。 有没有办法在播放器启动前显示控件? 不错的解决方案,仅供参考,我使用 setup 函数完成了它:videojs("example_video_1", inactivityTimeout : 0 );【参考方案2】:

我知道这个问题现在已经有几年了,但我也需要这样做,并且上面的答案使控件保持在视频的顶部。我在自己的 CSS 文件中使用了以下 CSS 来覆盖 videoJS 样式,以便在视频开始播放后保持控件可见并将它们保持在视频下方。

.vjs-default-skin.vjs-has-started .vjs-control-bar 
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  bottom: -3.4em !important;
  background-color: rgba(7, 20, 30, 1) !important;

【讨论】:

这似乎是最好的方法,但我认为实际需要的唯一行是opacity: 1 !important;visibility: visible !important;,对吧? “底部”规则将控件保留在视频下方而不是顶部,并且“显示”克服了可能的“显示:无”。【参考方案3】:

谢谢!我找到了另一个解决方案, 因为我想避免破解原始文件, 添加这是我的 CSS:

.vjs-fade-in,.vjs-fade-out 
visibility: visible !important;
opacity: 1 !important;
transition-duration: 0s!important;

谢谢!

【讨论】:

我不喜欢我们必须首先这样做,但感谢您的解决方法;)【参考方案4】:

从 video-js.css 中的 .vjs-fade-out.vjs-default-skin .vjs-controls 类中注释/删除 visibility:hiddenopacity:0 规则。

.vjs-fade-out 
    /*visibility: hidden!important;
    opacity: 0!important;*/
    -webkit-transition: visibility 0s linear 1.5s,opacity 1.5s linear;
    -moz-transition: visibility 0s linear 1.5s,opacity 1.5s linear;
    -ms-transition: visibility 0s linear 1.5s,opacity 1.5s linear;
    -o-transition: visibility 0s linear 1.5s,opacity 1.5s linear;
    transition: visibility 0s linear 1.5s,opacity 1.5s linear


.vjs-default-skin .vjs-controls 
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 0;
    padding: 0;
    height: 2.6em;
    color: #fff;
    border-top: 1px solid #404040;
    background: #242424;
    background: -moz-linear-gradient(top,#242424 50%,#1f1f1f 50%,#171717 100%);
    background: -webkit-gradient(linear,0% 0,0% 100%,color-stop(50%,#242424),color-stop(50%,#1f1f1f),color-stop(100%,#171717));
    background: -webkit-linear-gradient(top,#242424 50%,#1f1f1f 50%,#171717 100%);
    background: -o-linear-gradient(top,#242424 50%,#1f1f1f 50%,#171717 100%);
    background: -ms-linear-gradient(top,#242424 50%,#1f1f1f 50%,#171717 100%);
    background: linear-gradient(top,#242424 50%,#1f1f1f 50%,#171717 100%);
    /*visibility: hidden;
    opacity: 0*/

【讨论】:

以上是关于VideoJS:保持控件可见的主要内容,如果未能解决你的问题,请参考以下文章

Videojs只添加播放控制

videojs 播放器无法在 iPad 上运行

使用 videojs-record 和 videojs 进行直播

videojs踩过的坑

VideoJS:不在ipad上工作

使用videojs-ima插件捆绑videojs