表格自定义音频播放组件

1.在使用的地方调用

 <Audiosvue  ref="audio" class="audio-box" :audioFile="item.cont"></Audiosvue>

 2.引入组件

import Audiosvue from "@/components/audio";

 3.组件

<template><div><div style="display: flex;align-items: center;"><input type="range" v-model="progress" min="0" max="100" step="0.1" @input="updateAudioTime"  class="inputStyle"><span style="width: 100px;display: block;">{{ currentTime }} / {{ totalTime }}</span><button @click="playPauseAudio">{{ isPlaying ? '暂停' : '播放' }}</button></div></div>
</template><script>
export default {props: {audioFile: {type: String,},},data() {return {audio: null,isPlaying: false,currentTime: '00:00',totalTime: '00:00',progress: 0,isDragging: false};},computed: {},mounted() {// this.fetch();},created() {// 创建 Audio 对象this.audio = new Audio(this.audioFile);// 监听时间更新事件
this.audio.addEventListener('timeupdate', this.updateTimeAndProgressBar);},methods: {playPauseAudio() {if (this.isPlaying) {this.audio.pause();} else {this.audio.play();}this.isPlaying = !this.isPlaying;},updateAudioTime() {const currentTime = (this.progress / 100) * this.audio.duration;this.audio.currentTime = currentTime;if (!this.isDragging) {this.updateTimeAndProgressBar();}},updateTimeAndProgressBar() {const currentTime = this.audio.currentTime;const totalTime = this.audio.duration;this.currentTime = this.formatTime(currentTime);this.totalTime = this.formatTime(totalTime);this.progress = (currentTime / totalTime) * 100;},formatTime(time) {const minutes = Math.floor(time / 60);const seconds = Math.floor(time % 60);return `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;}},
};
</script><style lang="scss" scoped>
.inputStyle{width: 200px;
}
</style>

4.效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/712733.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

优化Vue项目中 WebStorm:2023.3 对 CSS 和 HTML 的默认注释

前言 WebStorm是一种基于JetBrains IntelliJ平台的集成开发环境&#xff08;IDE&#xff09;&#xff0c;专门用于Web开发。它支持JavaScript、HTML和CSS等语言&#xff0c;并提供了丰富的功能和工具&#xff0c;以提高开发人员的效率。但是&#xff0c;在开发Vue项目中发现&a…

(科目三)计算机操作系统

1、操作系统的基本概念及功能 1.1概念 一、操作系统的概念 操作系统是运行在裸机之上的&#xff0c;控制和管理计算机硬件和软件资源、合理组织计算机工作流程一级方便用户操作的程序集合。 操作系统由一套分层次的控制程序组成&#xff0c;是计算机硬件的一级扩充是软件系…

【爬虫逆向实战 逆向滑块 Python+Node】今天逆向的网站有点嘿嘿,还是仅供学习,别瞎搞

逆向日期&#xff1a;2024.03.01 使用工具&#xff1a;Node.js、Python 加密方法&#xff1a;AES标准算法 文章全程已做去敏处理&#xff01;&#xff01;&#xff01; 【需要做的可联系我】 AES解密处理&#xff08;直接解密即可&#xff09;&#xff08;crypto-js.js 标准算…

Java底层自学大纲_互联网安全设计篇

互联网安全设计专题_自学大纲所属类别学习主题建议课时&#xff08;h&#xff09; A 互联网安全架构平台设计001 如何防御XSS攻击与防止抓包篡改数据2.5 A 互联网安全架构平台设计002 spring security实现动态权限控制2.5 A 互联网安全架构平台设计003 spring security整合j…

基于RISC-V架构的通信DSP的设计以及在5G RedCap基带中的应用(六)-结论与展望

6 结论与展望 6.1 研究成果总结 基于RISC-V架构的向量指令集和通讯扩展指令集在5G Redcap基带处理器中的应用&#xff0c;可以有效提升处理器在处理大量数据时的性能以及满足特定应用需求的无线通讯能力。随着5G技术的发展&#xff0c;对于满足特定应用需求的行业&#xff0c;…

CentOS7 Mysql 忘记密码或临时密码进不去时怎么跳过密码进去然后再更改密码

CentOS7 Mysql 忘记密码或临时密码进不去时怎么跳过密码进去然后再更改密码 1、进文件 vi /etc/my.cnf2、加skip-grant-tables设置跳过密码 在[mysqld]下面加 skip-grant-tables3、mysql -u root -p直接回车无密码进去mysql mysql -u root -p3、先更新&#xff0c;不执行这…

实现unity场景切换

本文实现两个按键实现场景1和场景2之间的切换 ①首先在unity 3D中创建两个场景&#xff0c;分别为Scene1和Scene2 ②在Scene1中创建一个Button&#xff0c;修改txt内容为“To Scene2”&#xff0c;并在Buttons下创建一个空物体&#xff0c;用于挂载脚本。 脚本Trans Scene.…

操作系统x面试|进程与线程

1. 线程进程的区别 进程可以称为是资源分配的最小单元&#xff0c;而线程可以称为是处理器分配的最小单元。 资源包括内存空间。同时进程是一段代码的执行过程&#xff0c;这段代码需要多少的内存在代码确定时已经确定下来了。 处理器就是执行单元&#xff0c;一个进程可以拆解…

程序员的金三银四求职宝典

程序员的金三银四求职宝典 金三银四&#xff0c;即三月和四月&#xff0c;是程序员求职的黄金时期。在这个关键时期&#xff0c;求职者们需要做好充分的准备&#xff0c;以便在面试中脱颖而出。以下是一些建议&#xff0c;帮助程序员在金三银四期间更好地准备求职&#xff1a;…

【DAY06 软考中级备考笔记】数据结构:树

数据结构&#xff1a;树 3月1日 – 天气&#xff1a;晴 之前在B站看的视频讲的是在太过简单&#xff0c;弃了。现在换了新的视频继续&#xff0c;后续会重新看前面的视频补过来。https://www.bilibili.com/video/BV1pT4m1S7uH/ 1. 树的基本概念 需要注意的是&#xff1a; 并不是…

CentOS7使用yum安装MySQL8.0教程

CentOS7使用yum安装MySQL8.0 一、下载MySQL Yum下载仓库二、安装MySQL三、为MySQL运行提供相关的用户以及环境四、启动MySQL五、MySQL开机自启六、修改MySQL中root账户的密码 一、下载MySQL Yum下载仓库 MySQL下载地址&#xff1a;https://dev.mysql.com/downloads/ 首先进入下…

【前端面试题3】如何实现一个元素的水平垂直居中

以下是题目的布局代码&#xff1a; <div class"container"><div class"item" style"width: 100px; height: 100px; background: #999;">块状元素</div> </div><div class"container"><div class&qu…

Golang处理gRPC请求/响应元数据

前段时间实现内部gRPC框架时&#xff0c;为了实现在服务端拦截器中打印请求及响应的头部信息&#xff0c;便查阅了部分关于元数据的资料。因为中文网络上对于该领域的信息较少&#xff0c;于是在这做了一些简单的总结。 元数据 gRPC的元数据&#xff08;metadata&#xff09;…

Java通过Semaphore控制同一时间只有3个线程运行

怎么控制同一时间只有3个线程运行&#xff1f; 直接上代码 import java.util.Date; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Semaphore;public class SemaphoreThreadPoolExample {private static…

【网站项目】324企业人事信息管理系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

Windows下卸载JDK

操作步骤&#xff1a; 直接到windows程序卸载面板进行卸载 然后删除已配置的环境变量

深入解析Golang的encoding/ascii85库:从基础到实战

深入解析Golang的encoding/ascii85库&#xff1a;从基础到实战 引言基础知识什么是ASCII85编码&#xff1f;ASCII85编码的工作原理ASCII85编码的优点ASCII85编码的缺点 使用Golang的encoding/ascii85库引入encoding/ascii85包ASCII85编码ASCII85解码实战示例小结 进阶技巧和最佳…

用于游戏开发的顶级 PYTHON 框架

一、说明 我们试图用python开发游戏&#xff0c;一旦产生这个念头&#xff0c;就伴随这样一个问题&#xff1a;当今用于构建游戏的领先 Python 框架有哪些&#xff1f;python下&#xff0c;支持游戏开发平台有哪些优势&#xff1f;我们在这篇博文中告诉你。 二、高级游戏平台简…

Python 深拷贝和浅拷贝

Python 深拷贝和浅拷贝 Python 深拷贝和浅拷贝 Python 深拷贝和浅拷贝 在Python中&#xff0c;对象赋值有深拷贝和浅拷贝之分。 浅拷贝&#xff08;Shallow Copy&#xff09;&#xff1a;创建一个新的对象&#xff0c;但它包含的是对原始对象中包含项的引用&#xff0c;而不是…

驱动高级--mknod

一、起源 仅devfs&#xff0c;导致开发不方便以及一些功能难以支持&#xff1a; 热插拔 不支持一些针对所有设备的统一操作&#xff08;如电源管理&#xff09; 不能自动mknod 用户查看不了设备信息 设备信息硬编码&#xff0c;导致驱动代码通用性差&#xff0c;即没有分离…