首页 > 其他分享 >音乐播放器 — 用 vant4 中的滑块自定义播放器进度条

音乐播放器 — 用 vant4 中的滑块自定义播放器进度条

时间:2023-02-09 19:24:21浏览次数:39  
标签:播放器 秒数 自定义 滑块 进度条 音乐 music let

一、运行效果

 

 

 二、代码实现

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

相关文章