当前位置: 首页 > 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>

相关文章:

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

最近在工作中有个政务大屏用到了视频播放&#xff1b; 技术栈是Vue2、Element UI&#xff1b; 要实现的功能是&#xff1a;使用按钮实现视频的播放、停止、停止后继续播放、播放完成后重新播放功能 具体可以按照以下步骤进行操作&#xff1a; 引入插件&#xff1a; 在Vue组件…...

.Net 8 Blazor下 Auto交互渲染模式试用

一、环境 C:\Users\zhuji>dotnet --version 8.0.100C:\Users\zhuji>dotnet --list-sdks 5.0.403 [C:\Program Files\dotnet\sdk] 6.0.404 [C:\Program Files\dotnet\sdk] 8.0.100 [C:\Program Files\dotnet\sdk] Microsoft Visual Studio Enterprise 2022 (64 位) - Cu…...

AndroidStudio - 新版本 Logcat 使用详解

最近这俩天正好有时间给自己做一下减法&#xff0c;忘记是去年还是今年&#xff0c;在升级 AndroidStudio 后使用 Logcat查看日志的方式也发生了一些变化&#xff0c;虽然一直在使用&#xff0c;但每当看到之前还未关闭 Logcat 命令行工具额昂也&#xff0c;就感觉可能还存在知…...

Webpack ECMAScript 模块

文章目录 前言标题一导出导入将模块标记为 ESM 后言 前言 hello world欢迎来到前端的新世界 &#x1f61c;当前文章系列专栏&#xff1a;webpack &#x1f431;‍&#x1f453;博主在前端领域还有很多知识和技术需要掌握&#xff0c;正在不断努力填补技术短板。(如果出现错误&a…...

knife4j集合化postman

knife4j集合化postman 01 knife4j的介绍 基于 JavaMVC的集成框架swagger的进一步强化&#xff0c;在原有通过注释就能生成文档的前身swagger-bootstrap-ui之上&#xff0c;增加了postman的测试功能&#xff0c;优化了文档的UI界面&#xff0c;在测试api接口的方面有了极大的进…...

MongoDB的原子性和多文档事务处理

原子性和事务处理是数据库操作的核心&#xff0c;保证了数据的准确性。依据数据库原子性&#xff0c;数据库和使用数据库的人员定义事务处理的方式。本文依据Mongodb的官方文档&#xff0c;整理Mongodb数据库的原子性和事务处理方法。 Mongodb的原子操作 Mongodb中&#xff0c…...

代理模式 1、静态代理 2、动态代理 jdk自带动态代理 3、Cglib代理

文章目录 代理模式1、静态代理2、动态代理jdk自带动态代理 3、Cglib代理 来和大家聊聊代理模式 代理模式 代理模式&#xff1a;即通过代理对象访问目标对象&#xff0c;实现目标对象的方法。这样做的好处是&#xff1a;可以在目标对象实现的基础上&#xff0c;增强额外的功能操…...

ELK+filebeat+kafka

无需创建logstash的端口&#xff0c;直接创建topic 远程收集mysql和httpd的日志 &#xff08;一&#xff09;安装nginx和mysql服务 1、打开mysql的日志功能 2、创建日志&#xff08;创库、创表、添加数据&#xff09; &#xff08;1&#xff09;mysql服务器上安装http system…...

LLVM学习笔记(63)

4.4.3.3.2.3. 向量操作数类型的处理 下面开始处理向量类型。在默认情形下这些操作都会拆分为更小的操作或者调用库。 X86TargetLowering::X86TargetLowering&#xff08;续&#xff09; 667 // Some FP actions are always expanded for vector types. 668 for…...

【python+requests】接口自动化测试

这两天一直在找直接用python做接口自动化的方法&#xff0c;在网上也搜了一些博客参考&#xff0c;今天自己动手试了一下。 一、整体结构 上图是项目的目录结构&#xff0c;下面主要介绍下每个目录的作用。 Common:公共方法:主要放置公共的操作的类&#xff0c;比如数据库sql…...

plt创建指定色系

1、创建不连续色系 import matplotlib.pyplot as plt from matplotlib.colors import ListedColormap# 定义颜色的RGB值 colors [(0.2, 0.4, 0.6), # 蓝色(0.8, 0.1, 0.3), # 红色(0.5, 0.7, 0.2),(0.3,0.5,0.8)] # 绿色# 创建色系 cmap ListedColormap(colors)# 绘制…...

Java多线程-第20章

Java多线程-第20章 1.创建线程 Java是一种支持多线程编程的编程语言。多线程是指在同一程序中同时执行多个独立任务的能力。在Java中&#xff0c;线程是一种轻量级的子进程&#xff0c;它是程序中的最小执行单元。Java的多线程编程可以通过两种方式实现&#xff1a;继承Threa…...

寿险公司通过开源治理保障数字创新,安全打通高质量服务新通道

某寿险公司致力于为消费者提供人性化的产品和服务&#xff0c;在中国保险市场中始终保持前列。该寿险公司以挖掘和满足客户需求为出发点&#xff0c;从产品开发、渠道销售、运营流程和售后服务等各环节&#xff0c;借助数字化工具&#xff0c;不断地努力探索并提升服务品质。 精…...

SpringBoot中的部分注解

1.SpringBoot/spring SpringBootApplication: 包含Configuration、EnableAutoConfiguration、ComponentScan通常用在主类上&#xff1b; Repository: 用于标注数据访问组件&#xff0c;即DAO组件&#xff1b; Service: 用于标注业务层组件&#xff1b; RestController: 用…...

蓝桥杯-02-蓝桥杯C/C++组考点与14届真题

文章目录 蓝桥杯C/C组考点与14届真题参考资源C/C组考点1. 组别2. 竞赛赛程3. 竞赛形式4. 参赛选手机器环境5. 试题形式5.1. 结果填空题5.2. 编程大题 6. 试题考查范围7. 答案提交8. 评分9. 样题样题 1&#xff1a;矩形切割&#xff08;结果填空题&#xff09;样题 2&#xff1a…...

计算机杂谈系列精讲100篇-【计算机应用】关于TensorFlow和PyTorch的一些看法

目录 前言 知识储备 PyTorch使用高频代码 导入包和版本查询​​​​​​...

Uni-App知识点

文章目录 一、事件总线二、什么是事件总线三、触发事件1、监听事件2、只监听一次3、移除监听4、触发事件注意事项5、代码示例6、注意事项 一、事件总线 除了父子组件传参之外&#xff0c;兄弟组件之间共享信息也是我们经常会遇到的。如果遇到这类问题&#xff0c;我们现在可以…...

Postman如何使用(四):接口测试

一.接口 1.程序内部接口&#xff1a;方法与方法之间&#xff0c;模块与模块之间的交互&#xff0c;程序内部抛出的接口&#xff0c;比如bbs系统&#xff0c;有登录模块&#xff0c;发帖模块等等&#xff0c;那你要发帖就必须先登录&#xff0c;那么这两个模块就得有交互&#…...

【Qt绘图】之绘制坦克

使用绘图事件&#xff0c;绘制坦克。 效果 效果很逼真&#xff0c;想象力&#xff0c;有没有。 示例 代码像诗一样优雅&#xff0c;有没有。 包含头文件 #include <QApplication> #include <QWidget> #include <QPainter>绘制坦克类 class TankWidge…...

【机器视觉技术栈】- 机器视觉基础

1.1 为什么采用机器视觉 人眼与机器视觉对比 人眼机器视觉精确性差&#xff0c;64灰度级&#xff0c;不能分辨小于100微米的目标强&#xff0c;256灰度级&#xff0c;可检测微米级目标速度慢&#xff0c;无法看清间隔小于40毫秒的运动目标快&#xff0c;快门时间可达10微秒适…...

Vue Antd Admin架构完全指南:从设计哲学到最佳实践

Vue Antd Admin架构完全指南&#xff1a;从设计哲学到最佳实践 【免费下载链接】vue-antd-admin &#x1f41c; Ant Design Pros implementation with Vue 项目地址: https://gitcode.com/gh_mirrors/vu/vue-antd-admin Vue Antd Admin是一款基于Vue.js和Ant Design Pro…...

JWT签名爆破原理与Python手写实战

1. 这不是“黑客教程”&#xff0c;而是一次JWT安全边界的实操测绘 JWT&#xff08;JSON Web Token&#xff09;在现代Web系统中几乎无处不在——登录态维持、API鉴权、微服务间信任传递&#xff0c;它用一行紧凑的Base64Url编码字符串承载着本该被严格保护的身份凭证。但很多…...

Office RibbonX Editor:零编程定制Office界面的终极免费开源工具

Office RibbonX Editor&#xff1a;零编程定制Office界面的终极免费开源工具 【免费下载链接】office-ribbonx-editor An overhauled fork of the original Custom UI Editor for Microsoft Office, built with WPF 项目地址: https://gitcode.com/gh_mirrors/of/office-ribb…...

城通网盘下载速度慢?3分钟学会ctfileGet终极免费提速方案

城通网盘下载速度慢&#xff1f;3分钟学会ctfileGet终极免费提速方案 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 你是否曾经被城通网盘的龟速下载折磨得抓狂&#xff1f;面对50KB/s的限速、无尽的验…...

CAXA 表格样式

位置属性和 CAD 类似默认【标准】自带&#xff0c;删不掉。预览常规-表格方向向上&#xff1b;向下&#xff1b;单元样式标题&#xff1b;表头&#xff1b;数据&#xff1b;【切换】对应下方 常规、文字的属性设置。常规【对齐】创建行时合并单元&#xff1a;文字命令位置先设置…...

平衡小车PID调参新思路:用合宙ESP32-C3的BLE功能实现无线数据收发(附完整Arduino代码)

平衡小车无线PID调参实战&#xff1a;基于ESP32-C3 BLE的实时数据交互方案 调试平衡小车时&#xff0c;最令人头疼的莫过于反复插拔USB线修改PID参数。我曾经历过这样的场景&#xff1a;小车在桌面上左右摇摆&#xff0c;我蹲在地上盯着串口数据&#xff0c;每次修改参数都要暂…...

AI执行层临界点:推理确定性、能力切片与可信Agent的工程落地

1. 项目概述&#xff1a;这不是一份新闻简报&#xff0c;而是一份AI产业周度“技术脉搏图”“Last Week in AI”这个标题乍看像一份科技媒体的常规栏目&#xff0c;但真正拆开来看——它根本不是给普通读者看的“资讯摘要”&#xff0c;而是一份面向AI工程师、算法研究员、技术…...

昇腾CANN cann-samples:从示例代码到生产力工具的全路径

CANN 55 个仓库里&#xff0c;cann-samples 是最容易被低估的一个。它不定义新算子、不优化性能、不做架构设计——只提供可运行的代码示例。但正是因为「只提供示例」&#xff0c;cann-samples 是新手最快上手、老手最常查阅的仓库。每个示例都是独立可编译的项目&#xff1a;…...

从分子设计到社交网络:聊聊DiGress在图生成领域的实战潜力与当前局限

从分子设计到社交网络&#xff1a;DiGress在图生成领域的实战潜力与当前局限 当药物研发团队需要快速生成数百万种候选分子结构&#xff0c;或是社交平台试图模拟用户关系网络时&#xff0c;图生成技术正悄然改变这些行业的创新范式。在众多前沿方法中&#xff0c;DiGress&…...

2026 谷歌 GEO 已成流量主战场,不懂 AI 搜索直接掉队

&#x1f4c9; 三个信号同时出现&#xff0c;意味着一个时代结束了&#xff1a;① 你的Google/百度自然搜索流量&#xff0c;连续两个季度下滑超过15%② 你精心优化的"关键词"排名&#xff0c;依然带不来预期的转化③ 你的目标用户&#xff0c;开始在 ChatGPT、Perpl…...