博客
关于我
video-js 库使用 自定义组件
阅读量:550 次
发布时间:2019-03-08

本文共 1768 字,大约阅读时间需要 5 分钟。

Video.js 库的使用与自定义组件

引言

本文将介绍 Video.js 库的使用方法,特别关注其自定义组件的实现。通过多个案例和实践经验,分享配置和封装组件的技巧,助力开发者更好地使用该播放器。


Video.js 库概述

Video.js 是一个功能强大的视频播放器库,支持 HLS 直播流(m3u8格式)以及自定义组件开发,广泛应用于视频播放场景。此外,其对布局和控制Bar的配置选项较为丰富,能够满足多种个性化需求。


配置指南

常用配置

  • 插件支持:需要在 Vue 项目中 安装并配置相关插件,确保播放器正常运行。 请参考文档或相关博客获取具体配置项。
const playerOptions = {  controlBar: {    // 各项配置选项,可参考controlBar文档    progressControl: true,    playToggle: true,    volumePanel: true,    // 其他配置,可根据需求设置  }};
  • 普通使用方法:在 HTML 文件中添加视频元素,并通过 JavaScript 调用 Video.js 初始化玩家。
// player是视频容器的IDvar player = videojs('player', {  autoplay: 'muted',  // 其他配置选项});

控件Bar 配置

controlBar 是播放器的一大特点,提供多种常用功能按钮。默认配置中的各个控制项及其含义如下:

  • playToggle:播放/暂停按钮
  • volumePanel:音量控制面板
  • currentTimeDisplay:当前播放时间显示
  • durationDisplay:视频总时长显示

自定义控件顺序

如果需要自定义控件显示顺序,可以通过设置 children 属性来实现。例如,想将进度条放在最前面:

var controlBar = {  children: [    { name: 'progressControl' },    { name: 'playToggle' },    // 其他自定义控件  ]};

注册并使用自定义控件

想实现更深层次的个性化,可以开发自己的控制组件。如下创建一个自定义图片点击组件:

var myPlayer = videojs('player', {  controlBar: { children: [] }}, function() {  varontrolComponent = videojs.getComponent('progressControl');  videojs.registerComponent('myComponent', {    constructor: function(player, options) {      player.apply(this, arguments);      this.on('click', this.clickIcon);    },    createEl: function() {      return videojs.dom.createEl('div', {        className: 'vjs-my-components',        innerHTML: ''      });    },    clickIcon: function() {      alert('图片点击事件触发');    }  });  myPlayer.getChild('controlBar').addChild('myComponent');});

Vue 组件适配

在 Vue 项目中使用 Video.js 的封装组件,常见的做法是通过前置脚本加载相关库文件,并在 Vue 实例中注册组件。例如,可通过 node_modules/vue-video-player 目录下的源码进行参考和定制。


总结

Video.js 库提供了丰富的配置选项和灵活的扩展能力,适合适应多种视频播放场景。通过合理配置和自定义组件开发,可以显著提升播放器的用户体验。使用过程中,如遇到常见问题,可参考官方文档或相关技术博客,并灵活调整配置设置。

转载地址:http://wmuiz.baihongyu.com/

你可能感兴趣的文章
python系列【仅供参考】:python tornado 集成redis消息订阅的异步任务之后tornado主程序无法启动,解决方案
查看>>
python在使用HTMLTestRunner时,报告为空,错误提示<_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf_8'>...
查看>>
python在gpu上运行_【python】python开启GPU加速
查看>>
Python在def函数中使用for循环
查看>>
Python在def函数中使用for循环
查看>>
Python在Conda环境中,但在Windows虚拟环境中没有激活
查看>>
python系列【仅供参考】:python pip 错误 ModuleNotFoundError: No module named pip._internal 解决办法
查看>>
python图像条状状噪声,使用PYTHON PIL从验证码图像中删除背景嘈杂的线条
查看>>
Python图像处理:从内存加载jpeg
查看>>
python固定后缀(名物化词汇)词频统计:抽取+统计+可视化
查看>>
python商品评论数据采集与分析可视化系统 Flask框架 requests爬虫 NLP情感分析 毕业设计 源码
查看>>
python商品数据分析可视化系统(带爬虫)京东销售数据分析 计算机毕业设计 源码下载
查看>>
python商品库存管理系统 django框架 商品网站 MySQL数据库 源码下载 计算机毕业设计
查看>>
Python哪个版本最稳定好用2023.10.19
查看>>
Python和黑客技术的渊源
查看>>
Python和RF编写接口自动化
查看>>
Python和RF编写web自动化
查看>>
python和js哪个难_【Python】记一次学习,Python 与 js 在实现闭包时的差异
查看>>
python和java哪个更值得学——来自知乎高赞回答
查看>>
python和c混合编程 github_在pycharm中使用git版本管理以及同步github的方法
查看>>