一、运行效果
二、代码实现
2.1、HTML:
<!-- 音频播放器 --> <audio ref="audio" src="音乐名称.mp3" id="audio"></audio> <!-- 进度条 --> <div class="progress"> <!-- 当前播放时间 --> <span>{{ startTime }}</span> <van-slider v-model="progressValue" @change="onProgressChange" /> <!-- 总时间 --> <span>{{ endTime }}</span> </div>
2.2、JS:
// 进度条 let progressValue = ref(0); // 获取音乐播放时间 // 1、音乐总时长 // 2、音乐正在播放的时间节点 function addEventHandle(s: any) { // 断言,timeupdate 事件在音频/视频(audio/video)的播放位置发生改变时触发。 (<HTMLAudioElement>document.getElementById("audio")).addEventListener("timeupdate", () => { // 1、音乐正在播放的时间节点 music.currentTime = s.currentTime; // 2、音乐总时长 music.durationTime = s.duration; // console.log(s.duration); // 进度条,这条公式是进度条progress最大值超出100处理 progressValue.value = parseInt(s.currentTime) / s.duration * 100; // 实现显示当前播放时长与总时长: //总的秒数转换为分 let a = Math.floor(music.durationTime / 60); //总的秒数转换为秒 let b = Math.floor(music.durationTime % 60); // 秒数补0,如果小于10的话,在秒数前面补0 let c=b<10?"0"+b:b; //拼接然后赋值 music.endTime = a + "." + c; //获取分 const minute = parseInt((music.currentTime/60).toString()); //获取秒 const second = Math.ceil(music.currentTime % 60); const formatSecond = second > 59 ? 59 : second; //用字符模板赋值 music.startTime = `${minute}:${formatSecond < 10 ? '0' + formatSecond : formatSecond}`; }) }
标签:播放器,秒数,自定义,滑块,进度条,音乐,music,let From: https://www.cnblogs.com/fairya/p/17106709.html