4

我正在使用Video.js在我的网页中播放视频。我想将播放器控件自定义为仅播放按钮。

我的代码是

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

<script src="http://vjs.zencdn.net/c/video.js"></script>

<video id="my_video_1" class="video-js vjs-default-skin" controls
                    preload="auto" width="320" height="240" poster="thumb.png"
                    data-setup="{}">
                    <source src="v1.mp4" type='video/mp4'>
                    </video>

谁能指导我进行播放器自定义?

4

5 回答 5

9

我能够做到这一点的方法是将特定控件的 css 类设置为display: none;我页面的 CSS 中。在 video-js.css 被链接后,我的页面的 CSS 被链接。

/* Video.js Controls Style Overrides */
.vjs-default-skin .vjs-progress-control,
.vjs-default-skin .vjs-time-controls,
.vjs-default-skin .vjs-time-divider,
.vjs-default-skin .vjs-captions-button,
.vjs-default-skin .vjs-mute-control,
.vjs-default-skin .vjs-volume-control,
.vjs-default-skin .vjs-fullscreen-control {
    display: none;  
}

如果在链接 video-js.css 后您无法链接页面的 CSS,则可以display: none !important;改用它,这应该可以解决问题。虽然,我只会使用 !important 作为最后的手段。

注意:一旦点击播放,上述内容不会删除暂停按钮,也不会删除大播放按钮。删除这些时还有更多 UI 考虑因素。希望这将有助于一些人自定义 Video.js 控制栏。

于 2013-06-28T18:48:36.830 回答
4

我发现最简单的方法是修改类的原型。

插入

<script>
    _V_.ControlBar.prototype.options.components = {'playToggle':{}}
</script>

紧接着

<script src="http://vjs.zencdn.net/c/video.js"></script>

这将删除播放切换按钮之外的所有控件(包括持续时间、剩余时间和搜索栏)

如果您想要其他东西,您可以从默认设置中进行选择(其中一些设置为隐藏在默认皮肤上)

options: {
    components: {
        "playToggle": {},
        "fullscreenToggle": {},
        "currentTimeDisplay": {},
        "timeDivider": {},
        "durationDisplay": {},
        "remainingTimeDisplay": {},
        "progressControl": {},
        "volumeControl": {},
        "muteToggle": {}
    }
}

或者在 git hub https://github.com/zencoder/video-js/blob/master/src/controls.js上挖掘controls.js 文件

于 2012-11-29T21:25:59.567 回答
2

似乎还有一个选项可以通过隐藏/显示 controlBar 项目data-setup

组件列在 https://github.com/videojs/video.js/blob/stable/docs/guides/components.md
和选项说明https://github.com/videojs/video.js/blob /stable/docs/guides/options.md

<video data-setup='{ "controls": true, "autoplay": false, "preload": "auto" }'...>

controlBar传递如下:

data-setup='{ "controlBar": { "muteToggle": false } }'

编辑:正如评论,childrenfor的行为options已被简化和改变,另见文档:https ://github.com/videojs/video.js/blob/master/docs/guides/options.md#component-options For这些更改的背景和时间安排,请参阅https://github.com/videojs/video.js/issues/953

大播放按钮的 CSS 选择器是

.vjs-default-skin .vjs-big-play-button

但请确保在删除播放选项时有替代方案或适当的设置 (;

我的似乎默认隐藏控件(?)

于 2015-01-08T17:13:35.253 回答
1

这也删除了所有控制栏,但没有删除大播放按钮

.vjs-default-skin.vjs-has-started .vjs-control-bar {
visibility: hidden;
}
于 2013-10-30T07:57:35.927 回答
1

如果您还想摆脱播放按钮,而只是让视频播放并在点击时停止,请查看我改编的这个替代解决方案。

插入您的<head>(或其他地方,如果不可能)...

<script type="text/javascript">
    function vidplay(me) {
       if (me.paused) {
          me.play();
       } else {
          me.pause();
       }
    }
</script>

然后从您的视频中调用,例如

<video onclick="javascript: vidplay(this)" ...>

确保您没有在video标签中设置控件。显然,通过这种方式,您可以使用链接解决方案所做的自己的自定义按钮。

于 2015-01-21T21:38:52.123 回答