定制软件vue使用vue-video-player插件播放视频

前言

定制软件在我的一个项目中,定制软件需要进行播放视频,定制软件于是进行研究,定制软件那么本次也是将我怎么定制软件用插件进行播放视频的定制软件步骤进行讲解

官网文档

定制软件在进行正式讲解的时候,定制软件我觉得还是应该把它官定制软件网的文档进行发出来,定制软件因为我这边只是讲我有定制软件使用到的方法和属性,定制软件但是实际上,定制软件你们正式需要用到的可能不完全和我相同;这个时候就需要进行官方文档的查找了。
文档链接:

步骤

下载依赖和配置

首先我们需要在我们的项目进行安装下载该插件的依赖

npm install vue-video-player
  • 1

在你需要进行播放视频的页面引入

import { videoPlayer } from "vue-video-player";
  • 1

这里我们用videoPlayer进行标注名称

编写页面

引入完成后,我们就需要编写页面能够播放视频了

<template>	<div>	// 视频	<video-player class="video-player" ref="videoPlayer"></video-player>	</div></template>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

以上是最最基础的播放视频的结构,而如果你想播放视频的时候进行某些操作,或者设置视频的参数、按钮控制等等就需要定义属性和方法了。

<template>	<div>	// 视频	   <video-player        class="video-player"        ref="videoPlayer"        :options="playerOptions"        @pause="onPlayerPause($event)"        @ended="onPlayerEnded($event)"        @timeupdate="onPlayerTimeupdate($event)"      >      </video-player>	</div></template>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

其中
options代表的是对视频控件的设置
pause代表的是暂停回调,当视频暂停的时候进行操作
ended代表的是视频播放结束的回调,当视频播放完成的时候进行操作
timeupdate 代表的是时候监听每一秒进行操作
以上只是其中一部分,下面我会列出一些比较常用的方法

本人项目播放视频代码

单纯播放视频是很简单的,关键是你需要实现不同的需求,进行不同的回调调用。
那么在播放视频的部分,首先你需要接收到后端传过来的路径,以我的路径:

D:/EXAM_MATERIAL/NEW-STAFF/VIDEO/B-0001/1/B-0001.mp4
  • 1

为例
ps:这里我会只实现播放,具体的其他回调我不会写进来
界面:

<template>	<div>	<!--视频组件-->	   <video-player        class="video-player"        ref="videoPlayer"        :options="playerOptions"      >      </video-player>	</div></template>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

js逻辑

<script>import { videoPlayer } from "vue-video-player";export default {  name: "newStaffMediaPlay",  // 添加组件  components: {    videoPlayer,  },  // 定义变量   data() {    return {		mediaUrl: null, // 播放视频的路径		// 视频控制设置		playerOptions: {	        playbackRates: [1.0], // 可选的播放速度	        autoplay: true, // 如果为true,浏览器准备好时开始回放。	        muted: false, // 默认情况下将会消除任何音频。	        loop: false, // 是否视频一结束就重新开始。	        preload: "auto", // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)	        language: "zh-CN",	        aspectRatio: "16:9", // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")	        fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。	        sources: [	          {	            type: "video/mp4", // 类型	            src: "", // url地址	          },	        ],	        poster: "", // 封面地址	        notSupportedMessage: "此视频暂无法播放,请稍后再试", // 允许覆盖Video.js无法播放媒体源时显示的默认信息。	        controlBar: {	          timeDivider: true, // 当前时间和持续时间的分隔符	          durationDisplay: true, // 显示持续时间	          remainingTimeDisplay: true, // 是否显示剩余时间功能	          fullscreenToggle: true, // 是否显示全屏按钮        },      },	}  },  // 方法  methods: {  // 获取视频路径方法	  getMedia() {	  // 假定此临时变量为后端获取的路径	  	let mediaPath = "D:/EXAM_MATERIAL/NEW-STAFF/VIDEO/B-0001/1/B-0001.mp4";	  	// 处理路径,防止出现浏览器禁止访问问题        mediaPath = mediaPath.replace("D:/EXAM_MATERIAL", "/EXAM_MATERIAL");        let name = mediaPath.substring(mediaPath.lastIndexOf("/") + 1);        this.mediaUrl =          mediaPath.substring(0, mediaPath.lastIndexOf("/") + 1) +          encodeURI(name);          // 在视频控件设置视频路径        this.playerOptions.sources[0].src = this.mediaUrl;	  }	},  // created  created() {	// 进入页面加载获取后端传过来的视频路径进行播放	this.getMedia();	},}</script>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62

实际效果

以下截图为我项目播放视频截图

常用回调

  <template>    <div class='demo'>      <video-player class="video-player vjs-custom-skin"         ref="videoPlayer"         :playsinline="true"         :options="playerOptions"        @play="onPlayerPlay($event)"         @pause="onPlayerPause($event)"        @ended="onPlayerEnded($event)"        @waiting="onPlayerWaiting($event)"        @playing="onPlayerPlaying($event)"        @loadeddata="onPlayerLoadeddata($event)"        @timeupdate="onPlayerTimeupdate($event)"        @canplay="onPlayerCanplay($event)"        @canplaythrough="onPlayerCanplaythrough($event)"        @statechanged="playerStateChanged($event)"        @ready="playerReadied"      >      </video-player>    </div>  </template>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
 <script>    export default {      methods: {        // 播放回调        onPlayerPlay(player) {          console.log('player play!', player)        },        // 暂停回调        onPlayerPause(player) {          console.log('player pause!', player)        },        // 视频播完回调        onPlayerEnded($event) {          console.log(player)        },        // DOM元素上的readyState更改导致播放停止        onPlayerWaiting($event) {          console.log(player)        },        // 已开始播放回调        onPlayerPlaying($event) {          console.log(player)        },        // 当播放器在当前播放位置下载数据时触发        onPlayerLoadeddata($event) {          console.log(player)        },        // 当前播放位置发生变化时触发。        onPlayerTimeupdate($event) {          console.log(player)        },        //媒体的readyState为HAVE_FUTURE_DATA或更高        onPlayerCanplay(player) {          // console.log('player Canplay!', player)        },        //媒体的readyState为HAVE_ENOUGH_DATA或更高。这意味着可以在不缓冲的情况下播放整个媒体文件。        onPlayerCanplaythrough(player) {          // console.log('player Canplaythrough!', player)        },        //播放状态改变回调        playerStateChanged(playerCurrentState) {          console.log('player current update state', playerCurrentState)        },        //将侦听器绑定到组件的就绪状态。与事件监听器的不同之处在于,如果ready事件已经发生,它将立即触发该函数。。        playerReadied(player) {          console.log('example player 1 readied', player);        }      },    } </script>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61

结语

以上,就是我实现使用vue-video-player插件进行播放视频的过程

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发