当前位置: 首页 > news >正文

Vue系列:Vue Element UI中,使用按钮实现视频的播放、停止、停止后继续播放、播放完成后重新播放功能

最近在工作中有个政务大屏用到了视频播放;

技术栈是Vue2、Element UI;
要实现的功能是:使用按钮实现视频的播放、停止、停止后继续播放、播放完成后重新播放功能

具体可以按照以下步骤进行操作:

  1. 引入插件:
    在Vue组件中引入Element UI的按钮组件:import { Button } from 'element-ui';
  2. 新建组件:
    抽出来做成一个组件,在实际页面使用时直接引入,传相应的属性即可;
    组件创建一个data属性来存储当前音频文件的状态和相关信息,如音频文件是否正在播放、当前播放时间等。
  3. 组件样式设计:
    在模板中使用Element UI的按钮组件,并在每个按钮上绑定对应的事件处理函数,例如点击“播放”按钮后会触发playAudio()函数。
  4. 组件功能设计:
    在事件处理函数中调用HTML5的Audio API来控制音频的播放、暂停、继续播放和重新播放功能。可以通过new Audio('audio_file_url')方法创建一个新的音频对象,通过设置相关的属性和调用对应的方法来控制音频的状态和行为。
    对于停止后继续播放的功能,需要记录当前音频文件的播放位置,在继续播放时将其作为参数传入Audio对象的currentTime属性中即可。

以下实例为关键代码,演示了如何在Vue Element UI中实现播放、暂停、继续播放和重新播放功能:

<template><div><el-button @click="playAudio">播放</el-button><el-button @click="pauseAudio">暂停</el-button><el-button @click="resumeAudio">继续播放</el-button><el-button @click="restartAudio">重新播放</el-button></div>
</template><script>
import { Button } from 'element-ui';export default {components: {Button,},data() {return {audio: null, // 当前音频对象isPlaying: false, // 音频是否正在播放currentTime: 0, // 当前播放时间};},methods: {playAudio() {if (!this.audio) {this.audio = new Audio('audio_file_url');this.audio.addEventListener('ended', () => {// 播放完成后重新播放this.currentTime = 0;this.isPlaying = false;this.audio.currentTime = 0;});}this.audio.play();this.isPlaying = true;},pauseAudio() {if (this.audio) {this.audio.pause();this.isPlaying = false;}},resumeAudio() {if (this.audio && !this.isPlaying) {this.audio.currentTime = this.currentTime;this.audio.play();this.isPlaying = true;}},restartAudio() {if (this.audio) {this.audio.currentTime = 0;this.audio.play();this.isPlaying = true;}},},
};
</script>
http://www.lryc.cn/news/249686.html

相关文章:

  • .Net 8 Blazor下 Auto交互渲染模式试用
  • AndroidStudio - 新版本 Logcat 使用详解
  • Webpack ECMAScript 模块
  • knife4j集合化postman
  • MongoDB的原子性和多文档事务处理
  • 代理模式 1、静态代理 2、动态代理 jdk自带动态代理 3、Cglib代理
  • ELK+filebeat+kafka
  • LLVM学习笔记(63)
  • 【python+requests】接口自动化测试
  • plt创建指定色系
  • Java多线程-第20章
  • 寿险公司通过开源治理保障数字创新,安全打通高质量服务新通道
  • SpringBoot中的部分注解
  • 蓝桥杯-02-蓝桥杯C/C++组考点与14届真题
  • 计算机杂谈系列精讲100篇-【计算机应用】关于TensorFlow和PyTorch的一些看法
  • Uni-App知识点
  • Postman如何使用(四):接口测试
  • 【Qt绘图】之绘制坦克
  • 【机器视觉技术栈】- 机器视觉基础
  • Arkts开发UIAbility组件生命周期启动模式开发详解【鸿蒙专栏-19】
  • 力扣295. 数据流的中位数(java,堆解法)
  • open3d-点云及其操作
  • 无人机助力电力设备螺母缺销智能检测识别,python基于YOLOv7开发构建电力设备螺母缺销高分辨率图像小目标检测系统
  • 如何使用Python的Open3D开源库进行三维数据处理
  • HarmonyOS应用开发者基础认证试题
  • Android Camera2开启电子防抖(EIS)和光学防抖(OIS)
  • 劲爆:Sam Altman 回归CEO专访确认Q*的存在
  • Electronica慕尼黑电子展 Samtec团队与21ic分享虎家产品与方案
  • Vue基本使用(一)
  • Android:BackStackRecord