紫菜包饭,H5 音乐播映实例,音乐详情页制造,音轨制造,95558

频道:小编推荐 日期: 浏览:286

我就不瞎比比了,直接上代码吧:

//获取随机色彩
function randomColor(){
var r = Math.floor(Math.random()*256);
var g 紫菜包饭,H5 音乐播映实例,音乐详情页制造,音轨制造,95558= Math.floor(Math.random()*256);
var b = Math.floor(Math.random()*25苏婧荣西决免费阅览6);
return "rgb("+r+","+g+",紫菜包饭,H5 音乐播映实例,音乐详情页制造,音轨制造,95558"+b+")";//IE7不开销rgb
};
window.onload = function(){
//给音乐播映器(audio)增加一个timeupdate时刻
document.getElementById("music").ontimeu谢海田pdate = function(){
var currentTime 紫菜包饭,H5 音乐播映实例,音乐详情页制造,音轨制造,95558= Math.floor(紫菜包饭,H5 音乐播映实例,音乐详情页制造,音轨制造,95558this.currentTime); /紫菜包饭,H5 音乐播映实例,音乐详情页制造,音轨制造,95558/获取当时时刻

var m = parseInt(currentTime / 60);//分钟火辣妹
var s = parseInt(currentTime % 60);//秒钟
var time = (m<10?("0"+m):m)+":"+(s<10?("0"+s):s); //格式化
//console.log(time); //打印出来看看
// 百分比 = 当时时长 总时长 100%
var total = this.duration;//总时长
//console.log(currentTime + '=======' + total);
//console.l罗西贝微博og( Math.floor(curregogoanimentTime / total * 100) 男女日+ "%" );
document.getElementsByClassName("progress")[0].style.width = Mat无线电秘戏图h.floor(currentTime / total * 100) + "%" ;
}
//音轨制造
var box = document.getElemen张欣源剑灵tsByClassName('mbox')[0]; //获紫菜包饭,H5 音乐播映实例,音乐详情页制造,音轨制造,95558取承载音轨的父盒珍腴记子
var allWidth = box.clientWidth;//获取承载音轨盒子的宽度
var itemWidth = 5;
var len = (allWidth / itemWidth ); //核算总共呈现多少条音轨
var html = ''仁慈的儿媳妇; //动态拼接音轨
for(var i = 0;i < len ; i ++){
html+="";
}
box.innerHTML += html; //增加音轨
var audio = document.getElementById("music");
//1:音频上下文
window.AudioContext = window.AudioContext || window.webkitAudioContext || window.mozAudioContext || window.msAudioContext;
/*动画履行的兼罗安迪容写法*/
window.requestAnimat黄分田ionFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || 开封杞县气候window.msReque三国之西州制霸stAnimationFrame;
//2:初始化音轨目标
var audioContext = new window.AudioContext();
var flag = null; //操控是否解析的开关变量
//拿到播映器去解析音乐文件
var audioBufferSouceNode = audioContext.createMediaElementSource(audio);
audio.onplay = function(){
flag = true;
//创立解析目标
var analyser = audioContext.createAnalyser();
parse(analyser,function(array){
console.log(arra紫菜包饭,H5 音乐播映实例,音乐详情页制造,音轨制造,95558y); //打印解析出来的音轨节点
for(var i = 0;i < len ; i ++){
document.getElementsByClassName('item')[i].style.height = array[i] + 'px';
}
});
}
audio.onpause = function(){
for(var i 老婆图片= 0;i < len ; i ++){
document.getElementsByClassName('item')[i].style.height = 1 + 'px';
}
flag = false;
}
function 蒸盒号之歌parse(analyser,callback){
if(!flag){
return;
}
audioBufferSouceNode.connec谢东芸t(analyser);
analyser.connect(audioContext.destination);
var array = new Uint8Array(analyser.frequencyBinCount);
analyser.getByteFrequencyData(array);
if(callback) callback(array);
requestAnimationFrame(function(){
parse(a沃金汇nalyser,callback);
});
}
}

css:

.item {
position:absolute;
width:5px;
height:1px;
left:0px;
bottom:0px;
opacity: 0.5;
}

作用:

总结思路

1.获取mbox的宽度,然后动态核算总共有多少条音轨。

2.用H5的音频解析器去解析当时音乐播映的各频率的音高

3.用这些音高去给每一条音轨动态地设置高度hei抢银行攻略ght