搞了一晚终于搞定了,html5音乐播放器,顾名思义,只有支持html5标签的浏览器才能播放,实际上就是用了一个简单的<audio>标签,然后通过js将链接插入该标签,并且控制播放、暂停等操作。下面是详细步骤(自动播放版)
步骤一
html结构,这里主要包含了<audio>标签,和一些播放按钮a标签 以及播放列表盒子等等
<div id="html5player"> <audio class="aud"> <p>Oops, looks like your browser doesn't support HTML 5 audio.</p> </audio> <span class="css-loading"></span> <div id="music"> <a class="mprev" href="#1"><span class="fa fa-fast-backward"></span></a> <a class="mnext" href="#1"><span class="fa fa-fast-forward"></span></a> <a class="mplay" href="#1"><span class="fa fa-play"></span></a> <a class="mpause" href="#1"><span class="fa fa-pause"></span></a> <div class="clear"></div> </div> <div class="clear"></div> </div> <div id="musictitle"> <div id="musicload"></div> <div class="info"></div> </div>
其中用到fa图标字体作为按钮图标。
步骤二
接着就是JS部分,用到jQuery,所以要加载jQuery库 1.11.1版无压力,之后使用下面的jq代码控制播放动作
// HTML5音乐播放器 jQuery(document).ready(function() { var aud = $(".aud").get(0); aud.pos = -1; // 自动播放开始 aud.pos++; aud.pos == playlist.length && (aud.pos = 0); aud.setAttribute("src", playlist[aud.pos].url); $(".info").html(playlist[aud.pos].title); aud.load(); aud.play(); //自动播放结束 // 上一首、下一首按钮滑出 $("#html5player").hover(function() { $(".mprev").animate({left: "-35px",opacity:"1"}, 100); $(".mnext").animate({left: "19px",opacity:"1"}, 100) }, function() { $(".mprev").animate({left: "0px",opacity:"0"}, 100); $(".mnext").animate({left: "0px",opacity:"0"}, 100); }); // 播放按钮 $("#music .mplay").bind("click", function(b) { b.preventDefault(); 0 > aud.pos ? $("#music .mnext").trigger("click") : (aud.play(), $(this).fadeOut(200, function() { $(".mpause").fadeIn(100); $(".info").slideDown(200, function() { // 播放列表下滑出 $("#musicload").show(); }); })); }); // 暂停按钮 $("#music .mpause").bind("click", function(b) { b.preventDefault(); aud.pause(); $(this).fadeOut(200, function() { $(".mplay").fadeIn(100); $("#musicload").hide(); $(".info").slideUp(200); }); }); // 下一首按钮 $("#music .mnext").bind("click", function(b) { b.preventDefault(); aud.pause(); aud.pos++; aud.pos == playlist.length && (aud.pos = 0); aud.setAttribute("src", playlist[aud.pos].url); $(".info").html(playlist[aud.pos].title); aud.play(); // 如果是手动播放改为 aud.load(); }); // 上一首按钮 $("#music .mprev").bind("click", function(b) { b.preventDefault(); aud.pause(); aud.pos--; 0 > aud.pos && (aud.pos = playlist.length - 1); aud.setAttribute("src", playlist[aud.pos].url); $(".info").html(playlist[aud.pos].title); aud.play(); }); aud.addEventListener("canplay", function(a) { $("#music .mplay").trigger("click"); // 触发点击事件 }); aud.addEventListener("ended", function(a) { $("#music .mnext").trigger("click"); // 触发点击事件 }); // 进度条计算长度 aud.addEventListener("progress", function(a) { var c = parseInt($("#musictitle").css("width")); a = Math.round(aud.loaded / aud.total * 100); c = Math.ceil(c / 100 * a); $("#musicload").css("width", c); }); aud.addEventListener("timeupdate", function(b) { b = parseInt($("#musictitle").css("width")); var c = Math.round(aud.currentTime / aud.duration * 100); b = Math.ceil(b / 100 * c); $("#musicload").css("width", b); }); $(".info").html(playlist[0].title); }); // mp3列表 var playlist = [{ url: "http://hrnl0l.u.qiniudn.com/music/BambooDance.mp3", title: "BambooDance" }, { url: "http://hrnl0l.u.qiniudn.com/music/winterfall.mp3", title: "冬 雨" }, { url: "http://hrnl0l.u.qiniudn.com/music/ibeleve.mp3", title: "I Beleve" }, { url: "http://hrnl0l.u.qiniudn.com/music/xiexienidengwo.mp3", title: "谢谢你等我" }, { url: "http://hrnl0l.u.qiniudn.com/music/zwier.z.-in_the_end.mp3", title: "In the ends" }];
步骤三
剩下就是css了,上面有一个css3圆圈转动的动画,其他就是按钮的位置而已。
.css-loading{position:relative;top:7px;display:inline-block;width:25px;height:25px;border:5px solid #e6eaed;border-radius:50%} .css-loading:after{position:absolute;top:8px;left:-6px;width:37px;height:10px;background:#3d4450;content:'';animation:spin 1.2s infinite;-webkit-animation:spin 1.2s infinite;-moz-animation:spin 1.2s infinite;-o-animation:spin 1.2s infinite;-ms-animation:spin 1.2s infinite} @keyframes spin{100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}} @-webkit-keyframes spin{100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}} .mplayer{position:relative;top:-5px;left:-29px;z-index:0;opacity:.3;cursor:pointer} /*html5播放器*/ #html5player{float: right;width:50px;height:50px;position:relative;left:-10px;top: 1px;} #music{position:relative;top:-34px;left:8px} #music a{font-size:15px!important;position:relative;color:#bbb} #music a.mplay{top:8px;left:-33px} #music a.mpause{display:none;top:8px;left:-34px;font-size:13px!important;} #music a.mprev{opacity:0;top: 8px;} #music a.mnext{opacity:0;top: 8px;} #musictitle{position:relative;width:184px;height:50px;float: right;top:-52px;left:200px;} #musicload{width:0px;height:50px;position:absolute;background:#428bca;} #musicload,.info{display:none;} .info{position:relative;height:50px;line-height:50px;padding:0 10px;text-align:center;color:#fff;width:184px;background:#333;opacity:0.5}
大功告成,其实蛮简单的,最后是演示地址(样式和上面的不同,这个是直接扒下来的样子):
演示地址
本站文章除注明转载/出处外,均为本站原创或翻译。若要转载但请务必注明出处,尊重他人劳动成果。
转载请注明出处链接 : https://www.inlojv.com/4322.html