iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何在vue中使用video实现一个播放器功能
  • 194
分享到

如何在vue中使用video实现一个播放器功能

2023-06-06 10:06:50 194人浏览 泡泡鱼
摘要

这期内容当中小编将会给大家带来有关如何在Vue中使用video实现一个播放器功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。当现有video播放器不能满足需求时,需要自己对video进行封装。video

这期内容当中小编将会给大家带来有关如何在Vue中使用video实现一个播放器功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

当现有video播放器不能满足需求时,需要自己对video进行封装。

video事件

  • loadstart: 在视频开始加载时触发,给currentTime赋值(历史播放记录或0)。

  • durationchange: 元信息已载入或已改变,视频的长度发生了改变。获取到视频长度(duration,并给currentTime赋值(历史播放记录或0))。

  • playing: 在视频开始播放时触发(不论是初次播放、在暂停后恢复、或是在结束后重新开始)。

  • pause: 播放暂停时触发。

  • timeupdate: currentTime改变, 更新播放进度。处理播放进度条

  • seeked: 指定播放位置

  • waiting: 缓冲

  • ended: 播放结束, 重置状态

  • WeixinjsBridgeReady: 在微信中使用video,需要监听weixinJSBridgeReady事件, 在回调函数里执行play()命令。

直播协议

HLS(Http Live Streaming)由Apple提出的直播流协议。iOS和高版本Android都支持HLS。HLS主要由.m3u8和.ts两种播放文件。HLS具有高兼容性,高可扩展性,但会直播延时。HLS协议是将直播流分成一段一段的小段视频去下载播放的,所以假设列表里面的包含5个ts文件,每个ts文件包含5秒的视频内容,那么整体的延迟就是25秒。

RTMP(Real Time Messaging Protocol)是Macromedia开发的一套视频直播协议,现在属于Adobe。RTMP基于flash无法在IOS的浏览器里播放,但是实时性比HLS要好。

HTTP-FLV针对于FLV视频格式做的直播分发流,延时低。但移动端不支持。

结论:HTTP-FLV延时低,优先使用。若设备不支持HTTP-FLV,使用flv.js。若设备不支持flv.js,则使用HLS,但HLS延迟大。

封装video

<div class="video"> <!-- video player --> <video  class="video__player"  ref="videoPlayer"  preload="auto"  :autoplay="options.autoplay"  :muted="options.muted"  WEBkit-playsinline="true"  playsinline="true"  x-webkit-airplay="allow"  x5-video-player-type="h6-page"  x5-video-orientation="portraint"   >  <source :src="options.src" /> </video> <!-- video poster --> <div  v-show="showPoster"  class="video__poster"  : ></div> <!-- video loading --> <div v-show="showLoading" class="video__Loading">  <span class="video__Loading-icon"></span> </div> <!-- video pause --> <div @click="handleVideoPlay" class="video__pause">  <span v-show="!videoPlay" class="video__pause-icon"></span> </div></div>
props: { options: {  type: Object,  default: () => {} }},data() { return {  videoPlay: false, // 是否正在播放  videoEnd: false, // 是否播放结束  showPoster: true, // 是否显示视屏封面  showLoading: false, // 加载中  currentTime: 0, // 当前播放位置  currentVideo: {   duration: this.options.duration  }, }},mounted() { this.videoPlayer = this.$refs.videoPlayer; this.videoPlayer.currentTime = 0;  this.videoPlayer.addEventListener("loadstart", e => {   this.videoPlayer.currentTime = (this.options.playProcess > 0) ? this.options.playProcess : 0; });   // 获取到视频长度 this.videoPlayer.addEventListener("durationchange", e => {  this.currentVideo.duration = this.videoPlayer.duration;  // 存在播放历史记录  this.videoPlayer.currentTime = (this.options.playProcess > 0) ? this.options.playProcess : 0; });  this.videoPlayer.addEventListener("playing", e => {  this.showPoster = false;  this.videoPlay = true;  this.showLoading = false;  this.videoEnd = false; });  // 暂停 this.videoPlayer.addEventListener("pause", () => {  this.videoPlay = false;  if (this.videoPlayer.currentTime < 0.1) {   this.showPoster = true;  }  this.showLoading = false; });  // 播放进度更新 this.videoPlayer.addEventListener("timeupdate", e => {   this.currentTime = this.videoPlayer.currentTime;  },  false ); // 指定播放位置 this.videoPlayer.addEventListener("seeked", e => { }); // 缓冲 this.videoPlayer.addEventListener("waiting", e => {  this.showLoading = true; });  // 播放结束 this.videoPlayer.addEventListener("ended", e => {  // 重置状态  this.videoPlay = false;  this.showPoster = true;  this.videoEnd = true;  this.currentTime = this.currentVideo.duration; });  // 监听weixinJSBridgeReady事件,处理微信不能自动播放。但并不全部适用,加了暂停按钮,手动播放。 document.addEventListener('WeixinJSBridgeReady', () => {   this.videoPlayer.play(); }, false);},methods: { handleVideoPlay() {  if (this.videoPlayer.paused) { // 播放   if(this.videoEnd) { // 重播    this.currentTime = 0;    this.videoPlayer.currentTime = 0;   }   this.videoPlayer.play();   this.videoPlay = true;  } else { // 暂停   this.videoPlayer.pause();   this.videoPlay = false;  } }}

上述就是小编为大家分享的如何在vue中使用video实现一个播放器功能了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网精选频道。

--结束END--

本文标题: 如何在vue中使用video实现一个播放器功能

本文链接: https://www.lsjlt.com/news/246394.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何在vue中使用video实现一个播放器功能
    这期内容当中小编将会给大家带来有关如何在vue中使用video实现一个播放器功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。当现有video播放器不能满足需求时,需要自己对video进行封装。video...
    99+
    2023-06-06
  • 在Android应用中实现一个录音播放功能
    这期内容当中小编将会给大家带来有关在Android应用中实现一个录音播放功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。播放音频文件public class PlayManager { private ...
    99+
    2023-05-31
    android roi
  • 如何在Android中利用 ViewPager实现一个循环播放功能
    这篇文章将为大家详细讲解有关如何在Android中利用 ViewPager实现一个循环播放功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.初始化布局我们先来写一个ViewPager广告...
    99+
    2023-05-31
    android viewpager age
  • Android中使用VideoView实现一个循环播放功能
    本篇文章给大家分享的是有关Android中使用VideoView实现一个循环播放功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。具体如下:package com.hangch...
    99+
    2023-05-31
    android videoview roi
  • Android开发中如何实现一个音乐播放器功能
    Android开发中如何实现一个音乐播放器功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。需求1:将内存卡中的MP3音乐读取出来并显示到列表当中从数据库中查询所有音乐数据...
    99+
    2023-05-31
    android 音乐播放器 roi
  • 如何在Android中实现一个音乐播放器
    如何在Android中实现一个音乐播放器?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。实现过程导入项目所需的音乐文件、图标、背景等创建一个raw文件夹,将音乐文...
    99+
    2023-06-15
  • 如何使用MySQL和Java实现一个简单的音乐播放器功能
    如何使用MySQL和Java实现一个简单的音乐播放器功能引言:随着技术的不断发展,音乐播放器已经成为人们日常生活中不可或缺的一部分。本文将介绍如何使用MySQL和Java编程语言来实现一个简单的音乐播放器功能。文章将包含详细的代码示例,用于...
    99+
    2023-10-22
    音乐播放器 MySQL Java
  • Android开发中怎么实现一个音乐播放器功能
    Android开发中怎么实现一个音乐播放器功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。具体实现首先是布局文件中添加了如下代码,这些代码就是实现控制台的,给整体设置了一...
    99+
    2023-05-31
    android roi
  • 如何在Android中利用viewpager实现一个无限轮播功能
    如何在Android中利用viewpager实现一个无限轮播功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。小圆点属性dot_focused.xml<xml&nbs...
    99+
    2023-05-30
    viewpager android
  • 怎么在Vue中利用node实现音频录制播放功能
    本篇文章给大家分享的是有关怎么在Vue中利用node实现音频录制播放功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。vue部分:安装recorderxcnpm in...
    99+
    2023-06-14
  • 如何在Android中利用imageview实现一个图片缩放功能
    如何在Android中利用imageview实现一个图片缩放功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Android 自定义imageview实现图片缩放实例详解&nb...
    99+
    2023-05-31
    android imageview age
  • 在Android开发中利用ViewPager实现一个轮播功能
    本篇文章给大家分享的是有关在Android开发中利用ViewPager实现一个轮播功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。ViewPager是一个常用的Android...
    99+
    2023-05-31
    viewpager android age
  • 怎么在Android中利用SeekBar实现音乐播放器功能
    怎么在Android中利用SeekBar实现音乐播放器功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一.Demo简介 利用AIDL为Activity绑定服务,...
    99+
    2023-05-31
    android seekbar roi
  • 怎么在Andriod使用多线程实现一个轮播图功能
    这篇文章将为大家详细讲解有关怎么在Andriod使用多线程实现一个轮播图功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。MainActivity了初始化控件。<xml ve...
    99+
    2023-05-30
    android 多线程
  • 如何在Android中实现一个计时器功能
    本篇文章为大家展示了如何在Android中实现一个计时器功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Android是什么Android是一种基于Linux内核的自由及开放源代码的操作系统,主要...
    99+
    2023-06-14
  • 如何在Golang中使用WebSocket实现一个通信功能
    本篇文章给大家分享的是有关如何在Golang中使用WebSocket实现一个通信功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。什么是golanggolang 是Google...
    99+
    2023-06-06
  • 怎么在vue中使用django实现一个文件下载功能
    这篇文章将为大家详细讲解有关怎么在vue中使用django实现一个文件下载功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、概述在项目中,点击下载按钮,就可以下载文件。传统的下载链接一般...
    99+
    2023-06-14
  • 怎么在vue中使用flask实现一个视频合成功能
    这篇文章给大家介绍怎么在vue中使用flask实现一个视频合成功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。vue是什么软件Vue是一套用于构建用户界面的渐进式JavaScript框架,Vue与其它大型框架的区别是...
    99+
    2023-06-06
  • 如何设计一个高效的MySQL表结构来实现音乐播放功能?
    如何设计一个高效的MySQL表结构来实现音乐播放功能?在设计一个能够高效地实现音乐播放功能的数据库表结构时,我们需要考虑以下几个重要的因素:数据一致性、查询速度和扩展性。下面将详细介绍如何设计这个表结构,并给出一些具体的代码示例。首先,我们...
    99+
    2023-10-31
    高效设计 音乐播放功能 MySQL 表结构设计
  • 如何设计一个高效的MySQL表结构来实现音频播放功能?
    如何设计一个高效的MySQL表结构来实现音频播放功能?在开发音频播放功能时,一个高效的MySQL表结构设计是非常重要的。一个良好设计的表结构能够保证数据存储的效率和数据检索的速度。本文将介绍如何设计一个高效的MySQL表结构来实现音频播放功...
    99+
    2023-10-31
    MySQL表设计 音频播放功能 高效性设计
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作