码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • vue3通过vue-video-player实现视频倍速、默认全屏、拖拽进度条等功能


    效果图:

    1、场景:

    js原生的video标签在不同浏览器及不同型号手机上都展示的不一样,一部分没有倍速,一部分没有全屏等功能,为了统一视频播放的交互功能,使用vue-video-player插件来完成,vue-video-player插件支持在Vue2/Vue3/Reacet项目中使用,以下是在vue3中使用示例

    2、下载插件:

    npm i vue-video-player@6.0.0

    这里我下载的是最新版6.0.0

    3、注册组件

    • 方式一,在main.js导入并注册后全局使用:
    1. import { createApp } from 'vue'
    2. import VideoPlayer from 'vue-video-player'
    3. import 'video.js/dist/video-js.css'
    4. const app = createApp(App)
    5. app.use(VideoPlayer)
    • 方式二,在具体的vue文件中引入使用:
    1. import { VideoPlayer } from "@videojs-player/vue";
    2. import "video.js/dist/video-js.css";

    4、使用组件:

    1. <video-player
    2. ref="videoPlayer"
    3. @play="handleFullScreen"
    4. :options="playerOptions"
    5. />
    1. import { VideoPlayer } from "@videojs-player/vue";
    2. import "video.js/dist/video-js.css";
    3. import poster from "@/assets/images/videoStar.png"; // 封面图
    4. const { proxy } = getCurrentInstance();
    5. const playerOptions = ref({
    6. language: "zh-CN", // 语言
    7. playbackRates: [0.5, 1.0, 1.5, 2.0], // 倍速可选项 可自定义
    8. playsinline: true,
    9. controls: true, // 是否展示控制栏
    10. poster, // 封面图
    11. sources: [
    12. {
    13. // type为视频资源类型 application/x-mpegURL在总结着重介绍
    14. type: "video/mp4",
    15. src: '如果是指定的http链接,请确保后端返会的是MP4格式的数据'
    16. },
    17. ],
    18. });
    19. const handleFullScreen = () => {
    20. if (!proxy.$refs.videoPlayer?.$el?.player) return;
    21. // 点击播放时设置默认全屏 proxy可以理解为vue2的this
    22. proxy.$refs.videoPlayer.$el.player.requestFullscreen();
    23. };

    总结:

    vue-video-player插件的使用方式很简单,一般情况下是可以在播放视频的过程中拖动进度条的,但开发过程中也遇到一些问题:

    • options中的soure.type可选值:
      • application/dash+xml:DASH(Dynamic Adaptive Streaming over HTTP)流媒体
      • application/x-mpegURL(或application/vnd.apple.mpegurl):HLS流媒体
      • video/webm:WebM视频文件
      • audio/mpeg:MP3音频文件
      • video/mp4:MP4视频文件
      • 注意:type类型一定要和src值返回的数保持一致!!
    • 鼠标点击进度条后视频直接重置到了起点,这个问题可以参考:

    解决浏览器使用 vue-video-player播放视频不能拖动或点击进度条到指定位置播放,拖动或点击进度条会立即反弹回起点播放-CSDN博客

  • 相关阅读:
    Ubuntu 20.04 LTS 安装Kubernetes 1.26
    单例模式(面试常考)
    优思学院|六西格玛黑带的个人成功特质
    cmd命令行,杀掉某个进程,以(Anaconda为例)
    openresty lua-resty-lock数据库锁
    Celery笔记七之定时任务及crontab定义
    【scikit-learn基础】--『监督学习』之 K-近邻分类
    第二十五章《图书管理系统》第3节:项目完整代码
    Python中内置数据库!SQLite使用指南!
    常用图像卷积核类型小结
  • 原文地址:https://blog.csdn.net/SunFlower914/article/details/139964694
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号