vue使用vue-video-player插件播放视频的步骤讲解

目录
  • 前言
  • 官网文档
  • 步骤
    • 下载依赖和配置
    • 编写页面
    • 本人项目播放视频代码
    • 实际效果
    • 常用回调
  • 结语

前言

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

官网文档

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

文档链接:vue-video-player

步骤

下载依赖和配置

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

npm install vue-video-player

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

import {<!--{C}%3C!%2D%2D%20%2D%2D%3E--> videoPlayer } from "vue-video-player";

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

编写页面

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

<template>
	<div>
	// 视频
	<video-player class="video-player" ref="videoPlayer"></video-player>
	</div>
</template>

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

<template>
	<div>
	// 视频
	   <video-player
        class="video-player"
        ref="videoPlayer"
        :options="playerOptions"
        @pause="onPlayerPause($event)"
        @ended="onPlayerEnded($event)"
        @timeupdate="onPlayerTimeupdate($event)"
      >
      </video-player>
	</div>
</template>

其中

  • options代表的是对视频控件的设置
  • pause代表的是暂停回调,当视频暂停的时候进行操作
  • ended代表的是视频播放结束的回调,当视频播放完成的时候进行操作
  • timeupdate 代表的是时候监听每一秒进行操作

以上只是其中一部分,下面我会列出一些比较常用的方法

本人项目播放视频代码

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

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

为例

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

界面:

<template>
	<div>
	<!--视频组件-->
	   <video-player
        class="video-player"
        ref="videoPlayer"
        :options="playerOptions"
      >
      </video-player>
	</div>
</template>

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>

实际效果

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

常用回调

  <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>
 <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>

结语

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

到此这篇关于vue使用vue-video-player插件播放视频的文章就介绍到这了,更多相关vue-video-player插件播放视频内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 在小程序中使用腾讯视频插件播放教程视频的方法

    在我们开发的一个小程序里面,为了给客户了解一些教程内容,我们需要增加一个在线播放视频的模块,考虑过直接使用视频组件播放服务器上的视频不成功,因此使用腾讯视频插件来播放最终测试成功.本篇随笔介绍微信小程序使用视频组件和腾讯视频插件两种方式的解决方式,并重点介绍视频插件方式的处理过程. 1.使用视频组件播放视频 由于是我们自己录制的视频内容,本来想直接通过视频组件来播放自己服务器上的视频,理想很丰满,现实很骨感,不知道是视频内部比较大的原因还是腾讯禁止,虽然在开发工具上测试的时候可以播放,不过最终发

  • android使用surfaceview+MediaPlayer播放视频

    Android中播放视频主要有两种方式: 使用其自带的播放器.指定Action为ACTION_VIEW,Data为Uri,Type为其MIME类型 使用android自带的VideoView,这种方法太简单就不介绍了 使用SurfaceView+MediaPlayer,这种方式效果比较好,这里也重点介绍 SurfaceView从android 1.0就有了,十分好用.一般来说,UI对刷新都需要在UI线程中完成,但是,surfaceview可以在非UI线程中完成刷新.这样以来就很方便了,比如在线播

  • 5步学会使用VideoView播放视频

    我们可以试想ImageView能显示图片,而VideoView就是用来显示视频的. 使用VideoView播放视频的步骤如下 [1]在界面布局中定义VideoView <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="m

  • 如何在vue中使用video.js播放m3u8格式的视频

    @[toc] 注意: "vue": "^2.6.11", "video.js": "^7.10.2", "videojs-contrib-hls": "^5.15.0", "mux.js": "^5.7.0" 一.安装 yarn add video.js yarn add videojs-contrib-hls // 这是播放hls流需要的插件 y

  • vue + typescript + video.js实现 流媒体播放 视频监控功能

    视频才用流媒体,有后台实时返回数据, 要支持flash播放, 所以需安装对应的flash插件.当视频播放时,每间隔3秒向后台发送请求供检测心跳,表明在线收看状态,需要后台持续发送视频数据. 1. yarn add video.js videojs-flash 2. 创建videp.js声明文件 3. 创建video_player.vue组件,供外部调用.源码如下 <script lang="ts"> import { Component, Emit, Prop, Vue }

  • vue video和vue-video-player实现视频铺满教程

    网页放置视频播放器,我一般都是用video.js和它的插件vue-video-player 一:Video.js 需求:对于简单的视频播放需求来说,video.js足以胜任了. 它可是支持HTML5和Flash的视频播放器呦. 1:安装video.js npm install -s video.js 2:在main.js文件中引入相关文件 import Video from 'video.js' import 'video.js/dist/video-js.css' Vue.prototype.

  • vue结合el-upload实现腾讯云视频上传功能

    起因 根据需求要实现一个视频上传功能,之前采用七牛云上传,小点视频没问题,大体积视频比如600M左右,再考虑到网速等其他原因就会花费半个小时左右. 后来分析到不仅要考虑上传时间的问题,更重要的是要考虑用户使用4G 网络的情况,考虑用户的流量,线上的视频,不能不做压缩转码,就放到页面上,视频不是图片,不能甩到 cdn 上就行了. 要考虑视频大小,pc 移动端适配,转码,还有防盗版等问题. 最终决定使用腾讯云上传视频,我的项目是web端上传,参考以下链接 官网链接:cloud.tencent.com

  • Vue.js图片预览插件使用详解

    Vue.js 是什么 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合.另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动. 如果你想在深入学习 Vue 之前对它有更多了解,我们制作了一个视频,带您了解其核心概念和一个示例工程. 如果你已经是有经验的前端开发者,想知道 Vue

  • Ubuntu 20.04 火狐浏览器无法播放视频(缺少flash插件)的解决方法

    1.flash插件包下载地址:https://get.adobe.com/cn/flashplayer/ 本地下载: adobe Flash Player 浏览器flash播放插件 v32.0.0.207 Adobe Flash Player for Firefox 28.0.0.126 中文官方最新版 2.解压下载的文件:tar xzvf flash_player_npapi_linux.x86_64.tar.gz 3.打开终端并将路径切换到lib目录:cd /usr/lib 4.在lib目录

  • vue中解决chrome浏览器自动播放音频和MP3语音打包到线上的实现方法

    一.vue中解决chrome浏览器自动播放音频 需求 有新订单的时候,页面自动语音提示和弹出提示框: 问题 chrome浏览器在18年4月起,就在桌面浏览器全面禁止了音视频的自动播放功能.严格地来说,是Chrome不允许在用户对网页进行触发之前播放音频.不光是这样,在页面加载完毕的情况下,用户没有click.dbclick.touch等主动交互行为,使用js直接调用.play() 方法的话,chrome都会抛出如下错误:Uncaught (in promise) DOMException: 解决

随机推荐