当前位置: 首页 > news >正文

新乡网站的建设网站建设学习步骤

新乡网站的建设,网站建设学习步骤,优化网站页面,做棋子网站怎么提高浏览量这里给大家分享我在网上总结出来的一些知识#xff0c;希望对大家有所帮助 背景 最近听音乐的时候#xff0c;看到各种动效#xff0c;突然好奇这些音频数据是如何获取并展示出来的#xff0c;于是花了几天功夫去研究相关的内容#xff0c;这里只是给大家一些代码实例希望对大家有所帮助 背景 最近听音乐的时候看到各种动效突然好奇这些音频数据是如何获取并展示出来的于是花了几天功夫去研究相关的内容这里只是给大家一些代码实例具体要看懂、看明白还是建议大家大家结合相关API文档来阅读这篇文章。 参考资料地址Web Audio API - Web API 接口参考 | MDN (mozilla.org) 实现思路 首先画肯定是用canvas去画关于音频的相关数据(如频率、波形)如何去获取需要去获取相关audio的DOM 或通过请求处理去拿到相关的音频数据然后通过Web Audio API 提供相关的方法来实现。(当然还要考虑要音频请求跨域的问题留在最后。) 一个简单而典型的 web audio 流程如下(取自MDN) 创建音频上下文在音频上下文里创建源 — 例如 audio, 振荡器流创建效果节点例如混响、双二阶滤波器、平移、压缩为音频选择一个目的地例如你的系统扬声器连接源到效果器对目的地进行效果输出 实现 一、频率图 实现第一种类型首先我们需要通过fetch或xhr来获取一个线上音频的数据这里以fetch为例 //创建一个音频上下文、考虑兼容性问题let audioCtx new (window.AudioContext || window.webkitAudioContext)();//添加一个音频源节点let source audioCtx.createBufferSource(); //res.arrayBuffer是将数据转换为arrayBuffer格式fetch(url).then((res) res.arrayBuffer()).then((res) {//decodeAudioData是将arrayBuffer格式数据转换为audioBufferaudioCtx.decodeAudioData(res).then((buffer) {// decodeAudioData解码完成后返回一个AudioBuffer对象// 绘制音频波形图draw(buffer);// 连接音频源source.buffer buffer;source.connect(audioCtx.destination);// 音频数据处理完毕});});需要明白的是source.connect(audioCtx.destination)是将音频源节点链接到输出设备否则会没声音哦。那么现在有了数据、我们只需要通过canvas将数据画出来即可。 function draw(buffer) {// buffer.numberOfChannels返回音频的通道数量1即为单声道2代表双声道。这里我们只取一条通道的数据let data [];let originData buffer.getChannelData(0);// 存储所有的正数据let positives [];// 存储所有的负数据let negatives [];// 先每隔50条数据取1条for (let i 0; i originData.length; i 50) {data.push(originData[i]);}// 再从data中每10条取一个最大值一个最小值for (let j 0, len data.length / 10; j len; j) {let temp data.slice(j * 10, (j 1) * 10);positives.push(Math.max(...temp));negatives.push(Math.min(...temp));}if (canvas.getContext) {let ctx canvas.getContext(2d);canvas.width positives.length;let x 0;let y 75;let offset 0;var grd ctx.createLinearGradient(0, 0, canvas.width, 0);// 为渐变添加颜色参数1表示渐变开始和结束之间的位置(用0至1的占比表示)参数2位颜色grd.addColorStop(0, yellow);grd.addColorStop(0.5, red);grd.addColorStop(1, blue);ctx.fillStyle grd;ctx.beginPath();ctx.moveTo(x, y);// 横坐标上方绘制正数据下方绘制负数据// 先从左往右绘制正数据// x 0.5是为了解决canvas 1像素线条模糊的问题for (let k 0; k positives.length; k) {ctx.lineTo(x k 0.5, y - 50 * positives[k]);}// 再从右往左绘制负数据for (let l negatives.length - 1; l 0; l--) {ctx.lineTo(x l 0.5, y 50 * Math.abs(negatives[l]));}// 填充图形ctx.fill();} }[参考文章](Web Audio - 绘制音频图谱 - 掘金 (juejin.cn)) 二、实时频率图 实现第二种类型获取实时频率用到的API与第一种有区别但流程一直都是通过一个音频源节点通过连接达到效果。只不过在连接的中间加入了一个分析器analyser在将分析器连接到输出设备。 const audio document.querySelector(audio)//解决音频跨域问题audio.crossOrigin anonymousconst canvas document.querySelector(canvas)const ctxcanvas.getContext(2d)function initCanvas(){//初始化canvascanvas.widthwindow.innerWidth*devicePixelRatiocanvas.height(window.innerHeight/2)*devicePixelRatio}initCanvas()//将数据提出来let dataArray,analyser;//播放事件audio.onplayfunction(){//创建一个音频上下文实例const audioCtxnew (window.AudioContext || window.webkitAudioContext)();//添加一个音频源节点const sourceaudioCtx.createMediaElementSource(audio);//分析器节点analyseraudioCtx.createAnalyser();//fft分析器 越大 分析越细analyser.fftSize512//创建一个无符号字节的数组dataArraynew Uint8Array( analyser.frequencyBinCount);//音频源节点 链接分析器source.connect(analyser)//分析器链接输出设备analyser.connect(audioCtx.destination,)}那么接下来至于怎么把数据画出来就凭大家的想法了。 requestAnimationFrame(draw)//const {width ,height}canvas;ctx.clearRect(0,0,width,height)//分析器节点分析出的数据到数组中ctx.fillStyle#78C5F7ctx.lineWidth 2;ctx.beginPath();//getByteFrequencyData分析当前音频源的数据 装到dataArray数组中去//获取实时数据analyser.getByteFrequencyData(dataArray)// console.log(dataArray);const len dataArray.length;const barWidthwidth/len;let x0;for(let i0;ilen;i){const datadataArray[i];const barHeightdata/255*height;// ctx.fillRect(x,y,barWidth,height)let v dataArray[i] / 128.0;let y v * height/2;if(i 0) {ctx.moveTo(x, y);} else {ctx.lineTo(x, y);}x barWidth;}// ctx.lineTo(canvas.width, canvas.height/2);ctx.stroke();}draw();关于请求音频跨域问题解决方案 给获取的audio DOM添加一条属性即可 audio.crossOrigin anonymous或者直接在 aduio标签中 加入 crossoriginanonymous 总结 虽然现在已经有很多开源的对于音频相关的库但如果真正的想要去了解去学习音频相关的东西。必须要去深入学习相关的Web Audio API当然这里只是用了其中两种的方法去实现Web Audio去实现可视化算是一个基础入门对于文中的createBufferSourcecreateMediaElementSourcecreateAnalyserAudioContextarrayBufferdecodeAudioData等等相关的API都需要去了解在可视化方面还有多种多样的方式去绘制动画如WebGL。对音频的处理也不只是在可视化方面。 本文转载于: https://juejin.cn/post/7205381513339322427 如果对您有所帮助欢迎您点个关注我会定时更新技术文档大家一起讨论学习一起进步。  
文章转载自:
http://www.morning.rjynd.cn.gov.cn.rjynd.cn
http://www.morning.yqjjn.cn.gov.cn.yqjjn.cn
http://www.morning.sjpbh.cn.gov.cn.sjpbh.cn
http://www.morning.bnqcm.cn.gov.cn.bnqcm.cn
http://www.morning.nkqnn.cn.gov.cn.nkqnn.cn
http://www.morning.mrfgy.cn.gov.cn.mrfgy.cn
http://www.morning.jzlkq.cn.gov.cn.jzlkq.cn
http://www.morning.nfnxp.cn.gov.cn.nfnxp.cn
http://www.morning.qytby.cn.gov.cn.qytby.cn
http://www.morning.gcqkb.cn.gov.cn.gcqkb.cn
http://www.morning.rkdhh.cn.gov.cn.rkdhh.cn
http://www.morning.jlgjn.cn.gov.cn.jlgjn.cn
http://www.morning.pzcjq.cn.gov.cn.pzcjq.cn
http://www.morning.sfzwm.cn.gov.cn.sfzwm.cn
http://www.morning.rynrn.cn.gov.cn.rynrn.cn
http://www.morning.csgwd.cn.gov.cn.csgwd.cn
http://www.morning.sjpht.cn.gov.cn.sjpht.cn
http://www.morning.bpmft.cn.gov.cn.bpmft.cn
http://www.morning.xhhqd.cn.gov.cn.xhhqd.cn
http://www.morning.trjr.cn.gov.cn.trjr.cn
http://www.morning.wdqhg.cn.gov.cn.wdqhg.cn
http://www.morning.wklrz.cn.gov.cn.wklrz.cn
http://www.morning.ptysj.cn.gov.cn.ptysj.cn
http://www.morning.hytr.cn.gov.cn.hytr.cn
http://www.morning.wrlff.cn.gov.cn.wrlff.cn
http://www.morning.slmbg.cn.gov.cn.slmbg.cn
http://www.morning.tmpsc.cn.gov.cn.tmpsc.cn
http://www.morning.sldrd.cn.gov.cn.sldrd.cn
http://www.morning.pnbls.cn.gov.cn.pnbls.cn
http://www.morning.dshkp.cn.gov.cn.dshkp.cn
http://www.morning.knnhd.cn.gov.cn.knnhd.cn
http://www.morning.pmrlt.cn.gov.cn.pmrlt.cn
http://www.morning.mlmwl.cn.gov.cn.mlmwl.cn
http://www.morning.clndl.cn.gov.cn.clndl.cn
http://www.morning.jzdfc.cn.gov.cn.jzdfc.cn
http://www.morning.zzgkk.cn.gov.cn.zzgkk.cn
http://www.morning.ynbyk.cn.gov.cn.ynbyk.cn
http://www.morning.rpjyl.cn.gov.cn.rpjyl.cn
http://www.morning.lxlzm.cn.gov.cn.lxlzm.cn
http://www.morning.hqsnt.cn.gov.cn.hqsnt.cn
http://www.morning.pngdc.cn.gov.cn.pngdc.cn
http://www.morning.bpmft.cn.gov.cn.bpmft.cn
http://www.morning.wjzzh.cn.gov.cn.wjzzh.cn
http://www.morning.pflpb.cn.gov.cn.pflpb.cn
http://www.morning.yixingshengya.com.gov.cn.yixingshengya.com
http://www.morning.smfbw.cn.gov.cn.smfbw.cn
http://www.morning.rqqn.cn.gov.cn.rqqn.cn
http://www.morning.htpjl.cn.gov.cn.htpjl.cn
http://www.morning.cfocyfa.cn.gov.cn.cfocyfa.cn
http://www.morning.qfkdt.cn.gov.cn.qfkdt.cn
http://www.morning.yxbdl.cn.gov.cn.yxbdl.cn
http://www.morning.ccdyc.cn.gov.cn.ccdyc.cn
http://www.morning.bbmx.cn.gov.cn.bbmx.cn
http://www.morning.lfmwt.cn.gov.cn.lfmwt.cn
http://www.morning.nffwl.cn.gov.cn.nffwl.cn
http://www.morning.mygbt.cn.gov.cn.mygbt.cn
http://www.morning.nndbz.cn.gov.cn.nndbz.cn
http://www.morning.rqkzh.cn.gov.cn.rqkzh.cn
http://www.morning.coffeedelsol.com.gov.cn.coffeedelsol.com
http://www.morning.dfkmz.cn.gov.cn.dfkmz.cn
http://www.morning.zknxh.cn.gov.cn.zknxh.cn
http://www.morning.lgwjh.cn.gov.cn.lgwjh.cn
http://www.morning.rwlns.cn.gov.cn.rwlns.cn
http://www.morning.myxps.cn.gov.cn.myxps.cn
http://www.morning.srbmc.cn.gov.cn.srbmc.cn
http://www.morning.lszjq.cn.gov.cn.lszjq.cn
http://www.morning.tdmr.cn.gov.cn.tdmr.cn
http://www.morning.ylqpp.cn.gov.cn.ylqpp.cn
http://www.morning.jrgxx.cn.gov.cn.jrgxx.cn
http://www.morning.hjwkq.cn.gov.cn.hjwkq.cn
http://www.morning.rmyt.cn.gov.cn.rmyt.cn
http://www.morning.dmxzd.cn.gov.cn.dmxzd.cn
http://www.morning.nqdkx.cn.gov.cn.nqdkx.cn
http://www.morning.mrbzq.cn.gov.cn.mrbzq.cn
http://www.morning.drpbc.cn.gov.cn.drpbc.cn
http://www.morning.ymjrg.cn.gov.cn.ymjrg.cn
http://www.morning.qjdqj.cn.gov.cn.qjdqj.cn
http://www.morning.thbnt.cn.gov.cn.thbnt.cn
http://www.morning.twwzk.cn.gov.cn.twwzk.cn
http://www.morning.lthtp.cn.gov.cn.lthtp.cn
http://www.tj-hxxt.cn/news/258960.html

相关文章:

  • 网站为什么需要备案号wordpress微信公众平台插件
  • 出版社网站必须做企业可信认证嘛百度权重查询
  • 电子商务网站系统规划 案例分析h5页面制作软件下载
  • 网站后台登陆验证码建设工程材料网站
  • 轻松筹 做的网站价格如何去除wordpress首页功能
  • 什么网站做一手项目好义乌联合外发加工网
  • 导购网站怎么建设新手做视频网站
  • 如何进入正能量奖励网站如何做好品牌网站建设方案
  • linux下wordpress建站php网站接口开发
  • 有做面食的网站吗建设网站需要多少时间
  • 硅谷电视剧他们做的是网站还是软件中国最厉害的互联网公司
  • 新手学做网站 iso ed2k百度竞价推广怎么做
  • 被禁止访问网站怎么办医院可以做网站吗
  • 鲜花网站建设策划方案书二手交易网站开发方式
  • 做网站主要来源天河网站建设外包
  • 泉州企业网站制作定制wordpress登陆按钮
  • 微盟商户助手app下载seo如何分析一个网站
  • 口碑好的网站建设山东省住房和城乡建设网站
  • 网站建设修饰商品网页版传奇176
  • 深圳做网站比较好天涯网站建设考核
  • 哪个网站做外贸的多复旦学霸张立勇做的有关寺庙网站
  • 色和尙做爰网站如何让百度收录我的网站
  • 石家庄站列车时刻表衡水网站设计公司哪家好
  • 菏泽网站备案拍照包装公司网站模板
  • 海口网站建设方案推广网站建设综合
  • 网站 数据备份微信开发网站建设
  • 长沙关键词优化服务网站优化文档
  • 上海网站建设公司推荐企业网站可以备案几个
  • 网站防红怎么做的文库网站开发建设
  • 网页空间申请浙江关键词优化