首页
学习
活动
专区
圈层
工具
发布

Video.js 使用教程 - 手把手教你基于 Vue 搭建 HTML 5 视频播放器

[npm-success] 在 Vue 中使用 videojs 首先使用 npm 安装 video.js npm i video.js 安装完毕后,在 main.js 中进行引入 import videojs...我们在 PlayerVideo 组件的 style 中添加下列样式代码。 修改时属性必须设置为 !important ,否则不会生效。...important; } [video-basic-pause] 如何设置 Video.js 显示当前播放时间 通过修改两个类的状态可以实现显示播放时间的功能,在 PlayerVideo 组件中设置下列样式代码...$video 本质上是 video.js 提供的 videojs 函数,videojs 函数共有三个参数,第一个参数是绑定播放器的元素,第二参数为 options 对象,提供播放器的配置项,第三个参数为播放器渲染后的回调函数...我们给 PlayerVideo 组件的 data 添加 options 对象,并设置 controls 为 false,同时设定一个简单的回调函数。

13.2K41
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Vue3开发:视频播放器video.js使用详解

    设置playsinline后会禁止这一行为,在原video标签内进行视频播放。 不过由于Android系统的碎片化,在部分厂商自带的浏览器上会没有效果。这个具体看我另外一篇专门讲解内联播放的文章。...bigPlayButton 在视频上显示大播放按钮。这样同样需要controls为true,否则设置为true也不会显示。...src():string:获取当前视频源 play():播放 pause():暂停 paused():boolean:是否暂停 currentTime(number):设置播放位置,就是seek currentTime...配合error事件 播放器事件 通过Player.on(string, EventListener)函数可以设置播放器的监听事件,第一个参数是事件名称,第二个参数是回调。...这就需要我们去手动播放,可以在videojs配置的时候将bigPlayButton打开(注意controls也要设置为true),这样默认会显示一个大播放按钮,用户点击即可以播放。

    14.6K40

    React Fiber源码分析 第三篇(异步状态)

    ,同时不要等待下一帧, 尽快开始新事件 如果如果当前没有调度帧回调函数,我们需要进行一个调度帧回调函数, 并设置isAnimationFrameScheduled为true, 接着执行requestAnimationFrameWithTimeout..., 同时计算帧到期时间frameDeadline , 判断是否在帧回调的状态, 否的话调用window.postMessage ,并设置isIdleScheduled状态为true 假设此时, 有N个回调进入..., 先判断帧到期时间和超时时间是否小于当前时间, 如果是的话, 则置didTimeout为true, 如果帧到期, 但超时时间小于当前时间, 则置isAnimationFrameScheduled 为false...if (frameDeadline - currentTime 0) { // 帧过期 if (timeoutTime !..., 则表明至少有一个更新已过期, 迭代所有root任务, 把已过期的root的nextExpirationTimeToWorkOn重置为当前时间currentTime.

    99020

    如何开发一款 H5 小程序直播?

    使用videojs开发 在github找到videojshttps://github.com/videojs/video.js, 可以在这个网址中找到下面的两个文件,下载下来放在我们本地。 ?...如果我们在实践直播的时候拿到的流文件不播放,可能是播放器不支持这种嵌套。 m3u8分为动态列表,静态列表,全量列表。在直播行业基本是见不到静态列表的,他只是存在标准中。...静态列表和动态列表返回文件差不多,只是在第五行多添加了一个playlist-type值为event。其他的就没什么区别了。 ?...JS控制部分: volume: 音量(0 - 1) currentTime: 设置获取当前播放时间,单位是秒,超清和高清分别是不同的地址,档切换地址时需要定位时间。...在在nginx.conf文件中配置,我们需要配置服务RTMP模块,在配置文件的最底部新开一个代码块叫rtmp,里面写上监听1935端口,视频切片大小设置4000,也可以自行设置,然后配置一个rtmp的直播应用

    4.3K20

    React 的调度系统 Scheduler

    React 版本为 18.2.0 React 使用了全新的 Fiber 架构,将原本需要一次性递归找出所有的改变,并一次性更新真实 DOM 的流程,改成通过时间分片,先分成一个个小的异步任务在空闲时间找出改变...其实浏览器是提供一个 requestIdleCallback 的方法,让我们可以在浏览器空闲的时去调用传入去的回调函数。但因为兼容性不好,给的优先级可能太低,执行是在渲染帧执行等缺点。...没选常见的 setTimeout,是因为MessageChannel 能较快执行,在 0~1ms 内触发,像 setTimeout 即便设置 timeout 为 0 还是需要 4~5ms。...,如果小于帧间隔时间(frameInterval,通常为 5ms),不需要让出进程,否则让出。...scheduleCallback 会设置新任务的过期时间(根据优先级),并判断是否为延时任务(根据 options.delay)决定放入哪个任务队列中。

    1.2K10

    React源码解读之更新的创建_2023-02-20

    /ReactDOMLegacy ,render 方法定义很简单,正如我们常使用的那样,第一个参数是组件,第二个参数为组件所要挂载的DOM节点,第三个参数为回调函数。...更新过期时间 创建Update对象 为update对象绑定一些属性,比如 tag 、callback 创建的update对象入队 (enqueueUpdate) 进入调度过程 expirationTime...这三个方法均接收三个参数,第一个参数均为以上获取的 currentTime ,第二个参数为约定的超时时间,第三个参数与批量更新的粒度有关。...(((100 / 10) | 0) + 1) * 10,我们保持precision值不变,更改number会发现,当我们的值在100-110之间时,该函数返回的值相同。...此时恍然大悟,原来这个方法就是保证在同一个bucket中的更新获取到相同的过期时间 expirationTime ,就能够实现在较短时间间隔内的更新创建能够合并处理。

    36620

    React源码解读之更新的创建

    /ReactDOMLegacy ,render 方法定义很简单,正如我们常使用的那样,第一个参数是组件,第二个参数为组件所要挂载的DOM节点,第三个参数为回调函数。.../ReactDOMRoot 中,指定了创建的DOM容器和一些option设置,最终会返回一个 ReactDOMBlockingRoot 。...这三个方法均接收三个参数,第一个参数均为以上获取的 currentTime ,第二个参数为约定的超时时间,第三个参数与批量更新的粒度有关。...(((100 / 10) | 0) + 1) * 10,我们保持precision值不变,更改number会发现,当我们的值在100-110之间时,该函数返回的值相同。...此时恍然大悟,原来这个方法就是保证在同一个bucket中的更新获取到相同的过期时间 expirationTime ,就能够实现在较短时间间隔内的更新创建能够合并处理。

    50040

    React源码解读之更新的创建5

    /ReactDOMLegacy ,render 方法定义很简单,正如我们常使用的那样,第一个参数是组件,第二个参数为组件所要挂载的DOM节点,第三个参数为回调函数。.../ReactDOMRoot 中,指定了创建的DOM容器和一些option设置,最终会返回一个 ReactDOMBlockingRoot 。...这三个方法均接收三个参数,第一个参数均为以上获取的 currentTime ,第二个参数为约定的超时时间,第三个参数与批量更新的粒度有关。...(((100 / 10) | 0) + 1) * 10,我们保持precision值不变,更改number会发现,当我们的值在100-110之间时,该函数返回的值相同。...此时恍然大悟,原来这个方法就是保证在同一个bucket中的更新获取到相同的过期时间 expirationTime ,就能够实现在较短时间间隔内的更新创建能够合并处理。

    44440

    React源码解读--更新的创建

    /ReactDOMLegacy ,render 方法定义很简单,正如我们常使用的那样,第一个参数是组件,第二个参数为组件所要挂载的DOM节点,第三个参数为回调函数。.../ReactDOMRoot 中,指定了创建的DOM容器和一些option设置,最终会返回一个 ReactDOMBlockingRoot 。...这三个方法均接收三个参数,第一个参数均为以上获取的 currentTime ,第二个参数为约定的超时时间,第三个参数与批量更新的粒度有关。...(((100 / 10) | 0) + 1) * 10,我们保持precision值不变,更改number会发现,当我们的值在100-110之间时,该函数返回的值相同。...此时恍然大悟,原来这个方法就是保证在同一个bucket中的更新获取到相同的过期时间 expirationTime ,就能够实现在较短时间间隔内的更新创建能够合并处理。

    76140

    React源码解读之更新的创建

    /ReactDOMLegacy ,render 方法定义很简单,正如我们常使用的那样,第一个参数是组件,第二个参数为组件所要挂载的DOM节点,第三个参数为回调函数。.../ReactDOMRoot 中,指定了创建的DOM容器和一些option设置,最终会返回一个 ReactDOMBlockingRoot 。...这三个方法均接收三个参数,第一个参数均为以上获取的 currentTime ,第二个参数为约定的超时时间,第三个参数与批量更新的粒度有关。...(((100 / 10) | 0) + 1) * 10,我们保持precision值不变,更改number会发现,当我们的值在100-110之间时,该函数返回的值相同。...此时恍然大悟,原来这个方法就是保证在同一个bucket中的更新获取到相同的过期时间 expirationTime ,就能够实现在较短时间间隔内的更新创建能够合并处理。

    53830

    React源码之更新的创建

    /ReactDOMLegacy ,render 方法定义很简单,正如我们常使用的那样,第一个参数是组件,第二个参数为组件所要挂载的DOM节点,第三个参数为回调函数。.../ReactDOMRoot 中,指定了创建的DOM容器和一些option设置,最终会返回一个 ReactDOMBlockingRoot 。...这三个方法均接收三个参数,第一个参数均为以上获取的 currentTime ,第二个参数为约定的超时时间,第三个参数与批量更新的粒度有关。...(((100 / 10) | 0) + 1) * 10,我们保持precision值不变,更改number会发现,当我们的值在100-110之间时,该函数返回的值相同。...此时恍然大悟,原来这个方法就是保证在同一个bucket中的更新获取到相同的过期时间 expirationTime ,就能够实现在较短时间间隔内的更新创建能够合并处理。

    74630

    同构图与异构图CYPHER-TASK设计与TASK锁机制

    // batchFailedSize>0则任务状态回滚【当任意一个批量构建关系的任务失败时回滚任务状态】【回滚:设置node_check_point等于当前的rel_check_point】 // batchFailedSize...,rawCheckPoint // 当操作失败的数据包数量小于1时【即操作全部执行成功】则更新检查点【更新node_check_point为系统时间】【rel_check_point设置为更新前node_check_point...【当任意一个批量构建关系的任务失败时回滚任务状态】【回滚:设置node_check_point等于当前的rel_check_point】 // batchFailedSize0【成功执行则节点TASK...,rawCheckPoint // 当操作失败的数据包数量小于1时【即操作全部执行成功】则更新检查点【更新node_check_point为系统时间】【rel_check_point设置为更新前node_check_point...【当任意一个批量构建关系的任务失败时回滚任务状态】【回滚:设置node_check_point等于当前的rel_check_point】 // batchFailedSize0【成功执行则节点TASK

    80630

    基于check-point机制的任务状态回滚和数据分块任务

    任务状态回滚:回滚到构建节点的任务状态,下一次构建节点关系时从回滚点开始操作【构建任务分为节点TASK和关系TASK,任务回滚操作是在关系TASK中进行回滚】。...批量迭代执行构建任务 更新任务状态-当操作失败的数据包数量小于1时【即操作全部执行成功】则更新检查点【更新node_check_point为系统时间】【rel_check_point设置为更新前node_check_point...的值】 // 获取检查点时间【跑全量数据时修改CHECK_POINT的时间点为最早的一个时间即可】【数据量高于堆内存限制则必须使用数据分块方案】 CALL apoc.load.jdbc('jdbc:mysql...,rawCheckPoint // 当操作失败的数据包数量小于1时【即操作全部执行成功】则更新检查点【更新node_check_point为系统时间】【rel_check_point设置为更新前node_check_point...row,batchFailedSize,currentTime,rawCheckPoint; 关系TASK 大致为七步 获取检查点时间 数据分块-从数据库获取检查点之后最大最小自增ID 数据分块-从检查点开始按照指定数据块大小执行数据分块

    58920

    iOS_音频波形图Time、Wave实现,滑动设置播放进度

    实现如下: 需要的数据源: 1、demo.mp3:音频文件 2、samplePoints 数组:每秒音量(0-1)数组,根据音频pcm采样数据文件计算出来的(遍历:每秒取一点,并记录下最大值;最后按取值为...为了让时间显示在cell中间,所以设置结构如下图: time tableView 不可滑动,Wave tableView的 scrollViewDidScroll 回调里设置time tableView...:CGPointMake(0, currentTime * kAudioPlayerLineSpacing)]; }]; kAudioPlayerLineSpacing:是每条Line之间的距离(可以随意设置...: 开始减速方法里设置  [scrollView setContentOffset: animated:NO] (设置偏移为手指滑动到的位置,并不需要滑动动画,即可去掉滑动惯性) 2、然后滑动的时候需要暂停...player,否则就会跟 TimeObserver 回调里设置的偏移 冲突 在 scrollViewWillBeginDragging: 方法里调用 [_player pause] 在 scrollViewDidEndDragging

    2.5K10
    领券