模拟音乐播放器

简单模拟一个音乐播放器,音乐正常的播放功能兼容到IE9,IE8就挂掉了,谷歌,火狐,欧朋,Edge,360测试正常,IE下input样式待优化,希望大家提点建议。

参考效果网站:http://www.taihe.com/music

预览地址http://www.bright2017.top/musicaudio/

Github下载地址:https://github.com/struggle20160730/musicaudio.git  

 (作为一个拿来主义者,我深知上源码的重要意义。跪求亲们给个star!!!)

大致思路:

因为audio标签自带的样式不太符合项目需求,需要改为自定义样式,但是功能还是用的标签自带。

主要通过获取audio标签的几个属性,audio的音量,音频播放时长,播放与暂停。

通过js触发事件后重新设置audio的音频路径src即可。

用到的属性和方法:

var audio = document.getElementById('music1');//获取audio标签的ID

audio.play();// 播放  

audio.pause();// 暂停

audio.addEventListener("timeupdate",function(){//获取实时播放秒数
console.log("当前播放时间",this.currentTime);

});

audio.onended = function() {//音频播放结束触发的函数
    console.log("音频已播放完成");
};

audio.volume = 0;//设置音量为0就是静音,设置1就是最大音量,音量范围是0---1。

audio.currentTime = 0;//就是设置当前播放时间,播放时间秒数为0就是重新播放,设置200就是播放时间到200秒的时候。

audio.duration;//获取当前音频的总时长,总共多少秒,不过一般获取的时候容易拿到NAN。

这是写好的方法,可以获取准确时间。

function SounMusicTime() {
setTimeout(function () {
var duration = document.getElementById("music1").duration;
if(isNaN(duration)){
SounMusicTime();
}
else{
var Val=s_to_hs(duration).substring(0,5);//截取字符串,保留整数位
console.log("打印当前音频的秒数",Val);
}
}, 10);

}

函数s_to_hs(s):将秒转换为分钟,70秒转换为01:10。

function s_to_hs(s){
    //计算分钟
    //算法:将秒数除以60,然后下舍入,既得到分钟数
    var h;
    h  =   Math.floor(s/60);
    //计算秒
    //算法:取得秒%60的余数,既得到秒数
    s  =   s%60;
    //将变量转换为字符串
    h    +=    '';
    s    +=    '';
    //如果只有一位数,前面增加一个0
    h  =   (h.length==1)?'0'+h:h;
    s  =   (s.length==1)?'0'+s:s;
    return h+':'+s;
}

函数time_to_sec (time):将分秒转换为秒,04:10转换为250秒。

function time_to_sec (time) {
    var s = '';
    var min = time.split(':')[0];
    var sec = time.split(':')[1];
    s = Number(min*60) + Number(sec);
    return s;
};


猜你喜欢

转载自blog.csdn.net/bright2017/article/details/80041759