vue+video.js视频播放、视频切换、视频断点分段上传功能

 更新时间:2022年12月01日 10:56:54   作者:ws_code_csdn  
本次需求是做一个视频列表,点击视频列表播放对应视频;同时要求实现断点分段上传大文件(视频)的功能,今天通过本文给大家讲解下vue+video.js视频播放、视频切换、视频断点分段上传功能,感兴趣的朋友一起看看吧

“本次需求是做一个视频列表,点击视频列表播放对应视频;同时要求实现断点分段上传大文件(视频)的功能 。

videojs文档:Getting Started with Video.js - Video.js: The Player Framework | Video.js

断点续传组件地址:GitHub - gaoyuyue/MyUploader: 单文件上传,多文件上传,大文件上传,断点续传,文件秒传,图片上传

整体界面大致如下:

1. 安装依赖

npm i -S video.js

2.入口文件引入js和样式文件

// main.js (入口文件中引入js和样式文件)
import videojs from 'video.js'
import 'video.js/dist/video-js.css'
 
// 如果需要可以注册为vue全局方法
Vue.prototype.$video = videojs;

3.开始封装video组件

<!-- 视频播放组件 -->
 
<template>
    <video
    ref="videoPlayer"
    class="video-js"
    >
 
    </video>
</template>
<script>
export default {
    name: 'VideoPlayer',
    props: {
        // 视频播放地址
        url: {
            type: String,
        }
    },
    data () {
        return {
            // 视频实例
            player: null,
        }
    },
    methods: {
        // 改变视频播放地址
        changeVideoSrc (src) {
            this.player.src([{
                src,
                type: 'video/mp4'
            }])
        },
    },
    mountd () {
        // 初始化视频
        // this.$video 就是 videojs, 文件入口内已经全局注册了
        this.player = this.$video(this.$refs.videoPlayer, {
            language: 'zh-CN', // 中文
            responsive: true,
            autoplay: false,
            preload: 'auto',
            playbackRates: [1, 1.5, 2],
            sources: [{
                src: this.url,
                type: 'video/mp4'
            }]
        }, () => {
            this.player.log('ready', this)
        })
    },
    beforeDestory () {
        this.player && this.player.dispose();
    },
    
}
</script>

4.测试视频组件是否正常

// 父组件中引入视频组件
 
<VideoPlayer :url="url">
 
// 这里可以写个固定的地址测试一下视频组件能否播放
// 注意:不能是本地视频。比如是服务器上的视频才可以播放。

失败信息】-- 通常就是code为4.  大概意思就是因为视频格式和网络原因不能播放。这有几个原因:

1.视频格式不正确。 要求是type是MP4,而请求播放的视频不是MP4格式。

2.网络不同或者跨域。这种错误很常见且隐秘。需要看看播放地址是否能正常访问,或者该视频地址是不是存在跨域(corss origin)。跨域就用代理,很好解决,不在追叙。

【汉化失败】

明明设置了language为中文,但是结果还是英文。这里有个问题,videojs不会自动引入语言包,需要我们自行引入中文语言包。找到语言包,单独拿出来,放在src目录下,在入口文件中引入即可。

方法:node_moudles下找打videojs.dist/lang/zh-cn.js,如下图,

找到zh-cn.js,单独复制出来,放进src的js文件夹下。

当然,这时候还要再这个js文件中引入video.js,

然后在入口文件引入这个语言包即可汉化成功。

5.视频列表切换视频播放

// 视频列表代码比较简单不再写了  直接写切换方法
 
// 比如在父组件中  
<VideoPlayer ref="players" />
 
<!-- 视频切换列表 -->
 
<li
v-for="video in videos"
:key="video.id"
@click="changeVideoSource(video)"
>{{ 视频名称 }}</li>
 
 
// 视频切换方法
changeVideoSource (video) {
    this.$refs.players.changeVideoSrc(video.src);
},

至此,完成视频切换播放功能。

6.断点续传的插件

使用了下边这个断点续传的插件

GitHub - gaoyuyue/MyUploader: 单文件上传,多文件上传,大文件上传,断点续传,文件秒传,图片上传

首先,我们需要自行安装plupload。因为上边组件基于此组件封装的。

npm i -S plupload

然后,引入上边github项目中的如下几个文件:

这四个文件引入自己项目中去即可。

上传地址】 

 url就是上传地址。

上传参数

 可以在这里定义上传所需参数,

up.setOption("multipart_params", {
            
            "size":file.size,
            "md5":file.md5,
            filename: 'hahaha',
            id: '123456',
            // .......
        });

至此,视频播放与视频上传基本完成。要多看文档,多实践。

到此这篇关于vue+videojs视频播放、视频切换、视频断点分段上传的文章就介绍到这了,更多相关vue videojs视频播放内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue中定义src在img标签使用时加载不出来的解决

    Vue中定义src在img标签使用时加载不出来的解决

    这篇文章主要介绍了Vue中定义src在img标签使用时加载不出来的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • Vue cli及Vue router实例详解

    Vue cli及Vue router实例详解

    vue-cli是vue官方出品的快速构建单页应用的脚手架,里面集成了webpack,npm,nodejs,babel,vue,vue-router,这篇文章主要介绍了Vue cli及Vue router详解,需要的朋友可以参考下
    2022-08-08
  • vue 判断页面是首次进入还是再次刷新的实例

    vue 判断页面是首次进入还是再次刷新的实例

    这篇文章主要介绍了vue 判断页面是首次进入还是再次刷新的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 使用Bootstrap + Vue.js实现添加删除数据示例

    使用Bootstrap + Vue.js实现添加删除数据示例

    本篇文章主要介绍了使用Bootstrap + Vue.js实现 添加删除数据示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-02-02
  • vue3 vite pinia配置动态路由、解决刷新页面路由消失的问题

    vue3 vite pinia配置动态路由、解决刷新页面路由消失的问题

    这篇文章主要介绍了vue3 vite pinia配置动态路由、解决刷新页面路由消失的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • vue-cli history模式实现tomcat部署报404的解决方式

    vue-cli history模式实现tomcat部署报404的解决方式

    这篇文章主要介绍了vue-cli history模式实现tomcat部署报404的解决方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • 详解如何在vue项目中使用layui框架及采坑

    详解如何在vue项目中使用layui框架及采坑

    这篇文章主要介绍了vue使用layui框架,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • 解决v-if 与 v-for 同时使用报错的问题

    解决v-if 与 v-for 同时使用报错的问题

    在进行项目开发的时候因为在一个标签上同时使用了v-for和v-if两个指令导致的报错,遇到这个问题如何解决呢?下面小编给大家带来了关于v-if 与 v-for 使用报错问题分析及解决方法,一起看看吧
    2022-03-03
  • Vue.js组件tree实现无限级树形菜单

    Vue.js组件tree实现无限级树形菜单

    这篇文章主要为大家详细介绍了Vue.js组件tree实现无限级树形菜单代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • 详解Vue-axios 设置请求头问题

    详解Vue-axios 设置请求头问题

    这篇文章主要介绍了Vue-axios 设置请求头问题,文中给大家提到了axios设置请求头内容的方法,需要的朋友可以参考下
    2018-12-12

最新评论