音乐播放器实战记录

主要功能:

音乐开始播放、暂停
音乐文件总时长、当前播放时长
进度的显示与调节
音量的显示与调节
音乐结束的判断

**

主要代码块(Js):

**

1.进度条:(进度的调节及显示)

 var music = document.getElementById("music");
 var btn = document.getElementById("play_pause_btn");
 var current_time = document.getElementById("music_time");
 var music_progress =   document.getElementById("music_progress");
  var voice_progress = document.getElementById("voice");
        music.volume = 0.5;
//计时
        function showTime() {
            //返回音乐时长
            var music_time = music.duration;
            var now_time = music.currentTime;
            var minutes = parseInt(music_time / 60);
            var seconds = parseInt(music_time - minutes * 60);
            minutes = minutes < 10 ? '0' + minutes : minutes;
            seconds = seconds < 10 ? '0' + seconds : seconds;

            //返回播放时长
            var seconds_now = parseInt(now_time % 60);
            var minutes_now = parseInt(now_time / 60);
            seconds_now = seconds_now < 10 ? '0' + seconds_now : seconds_now;
            minutes_now = minutes_now < 10 ? '0' + minutes_now : minutes_now;

            //显示到文本中
            current_time.innerHTML = minutes_now + ":" + seconds_now + "/" + minutes + ":" + seconds;

            //显示到音乐进度条中
            var plan = parseFloat(now_time / music_time);
            var value1 = parseInt(plan * 100);
            music_progress.value=value1;

            if (music.ended) {`在这里插入代码片`
                console.log("end");
                music.currentTime = 0;
                btn.style.transform = "rotate(0deg)";
                clearInterval(timer2);
            }
        }

2.播放按钮:(音乐的播放与暂停)

var deg = 0;
        var timer2;
        //按钮开关
        btn.onclick = function() {
            if (music.paused) {
                music.play();
                timer2 = setInterval(function() {
                    if (deg == 360) { deg = 0; }
                    deg += 5;
                    console.log(deg);
                    btn.style.transform = "rotate(" + deg + "deg)"
                }, 100);
            } else {
                music.pause();
                clearInterval(timer2);
                btn.style.transform = "rotate(" + deg + "deg)"
            }
        }

3.音量调节 :

 music_progress.onclick = function(event) {
            var e = event ? event : window.event;
            console.log(e.pageX);
            var start = 100;
            music.currentTime = (e.pageX - start) * music.duration / 400;
        }

        voice_progress.onclick = function(eevet) {
            var e = event ? event : window.event;
            var start = 600;
            music.volume = (e.pageX - start) / 200;
            this.value = music.volume * 100;
            var voice_tb = document.getElementById("voice_tb");
            voice_tb.innerHTML = "音量:" + this.value + "%";
        }
        //定时器  : 设置时间 / 结束停止计时 / 重新开始
        var timer = setInterval(function() {
            showTime();
        }, 10);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值