{"ast":null,"code":"/*\r\n录音 Recorder扩展,动态波形显示\r\nhttps://github.com/xiangyuecn/Recorder\r\n*/\n(function (factory) {\n var browser = typeof window == \"object\" && !!window.document;\n var win = browser ? window : Object; //非浏览器环境,Recorder挂载在Object下面\n var rec = win.Recorder,\n ni = rec.i18n;\n factory(rec, ni, ni.$T, browser);\n})(function (Recorder, i18n, $T, isBrowser) {\n \"use strict\";\n\n var WaveView = function (set) {\n return new fn(set);\n };\n var ViewTxt = \"WaveView\";\n var fn = function (set) {\n var This = this;\n var o = {\n /*\r\n elem:\"css selector\" //自动显示到dom,并以此dom大小为显示大小\r\n \t//或者配置显示大小,手动把waveviewObj.elem显示到别的地方\r\n ,width:0 //显示宽度\r\n ,height:0 //显示高度\r\n \r\n H5环境以上配置二选一\r\n \r\n compatibleCanvas: CanvasObject //提供一个兼容H5的canvas对象,需支持getContext(\"2d\"),支持设置width、height,支持drawImage(canvas,...)\r\n ,width:0 //canvas显示宽度\r\n ,height:0 //canvas显示高度\r\n 非H5环境使用以上配置\r\n */\n\n scale: 2 //缩放系数,应为正整数,使用2(3? no!)倍宽高进行绘制,避免移动端绘制模糊\n ,\n speed: 9 //移动速度系数,越大越快\n ,\n phase: 21.8 //相位,调整了速度后,调整这个值得到一个看起来舒服的波形\n ,\n\n fps: 20 //绘制帧率,调整后也需调整phase值\n ,\n keep: true //当停止了input输入时,是否保持波形,设为false停止后将变成一条线\n ,\n\n lineWidth: 3 //线条基础粗细\n\n //渐变色配置:[位置,css颜色,...] 位置: 取值0.0-1.0之间\n ,\n linear1: [0, \"rgba(150,96,238,1)\", 0.2, \"rgba(170,79,249,1)\", 1, \"rgba(53,199,253,1)\"] //线条渐变色1,从左到右\n ,\n linear2: [0, \"rgba(209,130,255,0.6)\", 1, \"rgba(53,199,255,0.6)\"] //线条渐变色2,从左到右\n ,\n linearBg: [0, \"rgba(255,255,255,0.2)\", 1, \"rgba(54,197,252,0.2)\"] //背景渐变色,从上到下\n };\n for (var k in set) {\n o[k] = set[k];\n }\n ;\n This.set = set = o;\n var cCanvas = \"compatibleCanvas\";\n if (set[cCanvas]) {\n var canvas = This.canvas = set[cCanvas];\n } else {\n if (!isBrowser) throw new Error($T.G(\"NonBrowser-1\", [ViewTxt]));\n var elem = set.elem;\n if (elem) {\n if (typeof elem == \"string\") {\n elem = document.querySelector(elem);\n } else if (elem.length) {\n elem = elem[0];\n }\n ;\n }\n ;\n if (elem) {\n set.width = elem.offsetWidth;\n set.height = elem.offsetHeight;\n }\n ;\n var thisElem = This.elem = document.createElement(\"div\");\n thisElem.style.fontSize = 0;\n thisElem.innerHTML = '';\n var canvas = This.canvas = thisElem.querySelector(\"canvas\");\n if (elem) {\n elem.innerHTML = \"\";\n elem.appendChild(thisElem);\n }\n ;\n }\n ;\n var scale = set.scale;\n var width = set.width * scale;\n var height = set.height * scale;\n if (!width || !height) {\n throw new Error($T.G(\"IllegalArgs-1\", [ViewTxt + \" width=0 height=0\"]));\n }\n ;\n canvas.width = width;\n canvas.height = height;\n var ctx = This.ctx = canvas.getContext(\"2d\");\n This.linear1 = This.genLinear(ctx, width, set.linear1);\n This.linear2 = This.genLinear(ctx, width, set.linear2);\n This.linearBg = This.genLinear(ctx, height, set.linearBg, true);\n This._phase = 0;\n };\n fn.prototype = WaveView.prototype = {\n genLinear: function (ctx, size, colors, top) {\n var rtv = ctx.createLinearGradient(0, 0, top ? 0 : size, top ? size : 0);\n for (var i = 0; i < colors.length;) {\n rtv.addColorStop(colors[i++], colors[i++]);\n }\n ;\n return rtv;\n },\n genPath: function (frequency, amplitude, phase) {\n //曲线生成算法参考 https://github.com/HaloMartin/MCVoiceWave/blob/f6dc28975fbe0f7fc6cc4dbc2e61b0aa5574e9bc/MCVoiceWave/MCVoiceWaveView.m#L268\n var rtv = [];\n var This = this,\n set = This.set;\n var scale = set.scale;\n var width = set.width * scale;\n var maxAmplitude = set.height * scale / 2;\n for (var x = 0; x <= width; x += scale) {\n var scaling = (1 + Math.cos(Math.PI + x / width * 2 * Math.PI)) / 2;\n var y = scaling * maxAmplitude * amplitude * Math.sin(2 * Math.PI * (x / width) * frequency + phase) + maxAmplitude;\n rtv.push(y);\n }\n return rtv;\n },\n input: function (pcmData, powerLevel, sampleRate) {\n var This = this;\n This.sampleRate = sampleRate;\n This.pcmData = pcmData;\n This.pcmPos = 0;\n This.inputTime = Date.now();\n This.schedule();\n },\n schedule: function () {\n var This = this,\n set = This.set;\n var interval = Math.floor(1000 / set.fps);\n if (!This.timer) {\n This.timer = setInterval(function () {\n This.schedule();\n }, interval);\n }\n ;\n var now = Date.now();\n var drawTime = This.drawTime || 0;\n if (now - drawTime < interval) {\n //没到间隔时间,不绘制\n return;\n }\n ;\n This.drawTime = now;\n\n //切分当前需要的绘制数据\n var bufferSize = This.sampleRate / set.fps;\n var pcm = This.pcmData;\n var pos = This.pcmPos;\n var len = Math.max(0, Math.min(bufferSize, pcm.length - pos));\n var sum = 0;\n for (var i = 0; i < len; i++, pos++) {\n sum += Math.abs(pcm[pos]);\n }\n ;\n This.pcmPos = pos;\n\n //推入绘制\n if (len || !set.keep) {\n This.draw(Recorder.PowerLevel(sum, len));\n }\n if (!len && now - This.inputTime > 1300) {\n //超时没有输入,干掉定时器\n clearInterval(This.timer);\n This.timer = 0;\n }\n },\n draw: function (powerLevel) {\n var This = this,\n set = This.set;\n var ctx = This.ctx;\n var scale = set.scale;\n var width = set.width * scale;\n var height = set.height * scale;\n var speedx = set.speed / set.fps;\n var phase = This._phase -= speedx; //位移速度\n var phase2 = phase + speedx * set.phase;\n var amplitude = powerLevel / 100;\n var path1 = This.genPath(2, amplitude, phase);\n var path2 = This.genPath(1.8, amplitude, phase2);\n\n //开始绘制图形\n ctx.clearRect(0, 0, width, height);\n\n //绘制包围背景\n ctx.beginPath();\n for (var i = 0, x = 0; x <= width; i++, x += scale) {\n if (x == 0) {\n ctx.moveTo(x, path1[i]);\n } else {\n ctx.lineTo(x, path1[i]);\n }\n ;\n }\n ;\n i--;\n for (var x = width - 1; x >= 0; i--, x -= scale) {\n ctx.lineTo(x, path2[i]);\n }\n ;\n ctx.closePath();\n ctx.fillStyle = This.linearBg;\n ctx.fill();\n\n //绘制线\n This.drawPath(path2, This.linear2);\n This.drawPath(path1, This.linear1);\n },\n drawPath: function (path, linear) {\n var This = this,\n set = This.set;\n var ctx = This.ctx;\n var scale = set.scale;\n var width = set.width * scale;\n ctx.beginPath();\n for (var i = 0, x = 0; x <= width; i++, x += scale) {\n if (x == 0) {\n ctx.moveTo(x, path[i]);\n } else {\n ctx.lineTo(x, path[i]);\n }\n ;\n }\n ;\n ctx.lineWidth = set.lineWidth * scale;\n ctx.strokeStyle = linear;\n ctx.stroke();\n }\n };\n Recorder[ViewTxt] = WaveView;\n});","map":{"version":3,"names":["factory","browser","window","document","win","Object","rec","Recorder","ni","i18n","$T","isBrowser","WaveView","set","fn","ViewTxt","This","o","scale","speed","phase","fps","keep","lineWidth","linear1","linear2","linearBg","k","cCanvas","canvas","Error","G","elem","querySelector","length","width","offsetWidth","height","offsetHeight","thisElem","createElement","style","fontSize","innerHTML","appendChild","ctx","getContext","genLinear","_phase","prototype","size","colors","top","rtv","createLinearGradient","i","addColorStop","genPath","frequency","amplitude","maxAmplitude","x","scaling","Math","cos","PI","y","sin","push","input","pcmData","powerLevel","sampleRate","pcmPos","inputTime","Date","now","schedule","interval","floor","timer","setInterval","drawTime","bufferSize","pcm","pos","len","max","min","sum","abs","draw","PowerLevel","clearInterval","speedx","phase2","path1","path2","clearRect","beginPath","moveTo","lineTo","closePath","fillStyle","fill","drawPath","path","linear","strokeStyle","stroke"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/recorder-core/src/extensions/waveview.js"],"sourcesContent":["/*\r\n录音 Recorder扩展,动态波形显示\r\nhttps://github.com/xiangyuecn/Recorder\r\n*/\r\n(function(factory){\r\n\tvar browser=typeof window==\"object\" && !!window.document;\r\n\tvar win=browser?window:Object; //非浏览器环境,Recorder挂载在Object下面\r\n\tvar rec=win.Recorder,ni=rec.i18n;\r\n\tfactory(rec,ni,ni.$T,browser);\r\n}(function(Recorder,i18n,$T,isBrowser){\r\n\"use strict\";\r\n\r\nvar WaveView=function(set){\r\n\treturn new fn(set);\r\n};\r\nvar ViewTxt=\"WaveView\";\r\nvar fn=function(set){\r\n\tvar This=this;\r\n\tvar o={\r\n\t\t/*\r\n\t\telem:\"css selector\" //自动显示到dom,并以此dom大小为显示大小\r\n\t\t\t//或者配置显示大小,手动把waveviewObj.elem显示到别的地方\r\n\t\t,width:0 //显示宽度\r\n\t\t,height:0 //显示高度\r\n\t\t\r\nH5环境以上配置二选一\r\n\t\t\r\n\t\tcompatibleCanvas: CanvasObject //提供一个兼容H5的canvas对象,需支持getContext(\"2d\"),支持设置width、height,支持drawImage(canvas,...)\r\n\t\t,width:0 //canvas显示宽度\r\n\t\t,height:0 //canvas显示高度\r\n非H5环境使用以上配置\r\n\t\t*/\r\n\t\t\r\n\t\tscale:2 //缩放系数,应为正整数,使用2(3? no!)倍宽高进行绘制,避免移动端绘制模糊\r\n\t\t,speed:9 //移动速度系数,越大越快\r\n\t\t,phase:21.8 //相位,调整了速度后,调整这个值得到一个看起来舒服的波形\r\n\t\t\r\n\t\t,fps:20 //绘制帧率,调整后也需调整phase值\r\n\t\t,keep:true //当停止了input输入时,是否保持波形,设为false停止后将变成一条线\r\n\t\t\r\n\t\t,lineWidth:3 //线条基础粗细\r\n\t\t\r\n\t\t//渐变色配置:[位置,css颜色,...] 位置: 取值0.0-1.0之间\r\n\t\t,linear1:[0,\"rgba(150,96,238,1)\",0.2,\"rgba(170,79,249,1)\",1,\"rgba(53,199,253,1)\"] //线条渐变色1,从左到右\r\n\t\t,linear2:[0,\"rgba(209,130,255,0.6)\",1,\"rgba(53,199,255,0.6)\"] //线条渐变色2,从左到右\r\n\t\t,linearBg:[0,\"rgba(255,255,255,0.2)\",1,\"rgba(54,197,252,0.2)\"] //背景渐变色,从上到下\r\n\t};\r\n\tfor(var k in set){\r\n\t\to[k]=set[k];\r\n\t};\r\n\tThis.set=set=o;\r\n\t\r\n\tvar cCanvas=\"compatibleCanvas\";\r\n\tif(set[cCanvas]){\r\n\t\tvar canvas=This.canvas=set[cCanvas];\r\n\t}else{\r\n\t\tif(!isBrowser)throw new Error($T.G(\"NonBrowser-1\",[ViewTxt]));\r\n\t\tvar elem=set.elem;\r\n\t\tif(elem){\r\n\t\t\tif(typeof(elem)==\"string\"){\r\n\t\t\t\telem=document.querySelector(elem);\r\n\t\t\t}else if(elem.length){\r\n\t\t\t\telem=elem[0];\r\n\t\t\t};\r\n\t\t};\r\n\t\tif(elem){\r\n\t\t\tset.width=elem.offsetWidth;\r\n\t\t\tset.height=elem.offsetHeight;\r\n\t\t};\r\n\t\t\r\n\t\tvar thisElem=This.elem=document.createElement(\"div\");\r\n\t\tthisElem.style.fontSize=0;\r\n\t\tthisElem.innerHTML='';\r\n\t\t\r\n\t\tvar canvas=This.canvas=thisElem.querySelector(\"canvas\");\r\n\t\t\r\n\t\tif(elem){\r\n\t\t\telem.innerHTML=\"\";\r\n\t\t\telem.appendChild(thisElem);\r\n\t\t};\r\n\t};\r\n\tvar scale=set.scale;\r\n\tvar width=set.width*scale;\r\n\tvar height=set.height*scale;\r\n\tif(!width || !height){\r\n\t\tthrow new Error($T.G(\"IllegalArgs-1\",[ViewTxt+\" width=0 height=0\"]));\r\n\t};\r\n\t\r\n\tcanvas.width=width;\r\n\tcanvas.height=height;\r\n\tvar ctx=This.ctx=canvas.getContext(\"2d\");\r\n\t\r\n\tThis.linear1=This.genLinear(ctx,width,set.linear1);\r\n\tThis.linear2=This.genLinear(ctx,width,set.linear2);\r\n\tThis.linearBg=This.genLinear(ctx,height,set.linearBg,true);\r\n\t\r\n\tThis._phase=0;\r\n};\r\nfn.prototype=WaveView.prototype={\r\n\tgenLinear:function(ctx,size,colors,top){\r\n\t\tvar rtv=ctx.createLinearGradient(0,0,top?0:size,top?size:0);\r\n\t\tfor(var i=0;i1300){\r\n\t\t\t//超时没有输入,干掉定时器\r\n\t\t\tclearInterval(This.timer);\r\n\t\t\tThis.timer=0;\r\n\t\t}\r\n\t}\r\n\t,draw:function(powerLevel){\r\n\t\tvar This=this,set=This.set;\r\n\t\tvar ctx=This.ctx;\r\n\t\tvar scale=set.scale;\r\n\t\tvar width=set.width*scale;\r\n\t\tvar height=set.height*scale;\r\n\t\t\r\n\t\tvar speedx=set.speed/set.fps;\r\n\t\tvar phase=This._phase-=speedx;//位移速度\r\n\t\tvar phase2=phase+speedx*set.phase;\r\n\t\tvar amplitude=powerLevel/100;\r\n\t\tvar path1=This.genPath(2,amplitude,phase);\r\n\t\tvar path2=This.genPath(1.8,amplitude,phase2);\r\n\t\t\r\n\t\t//开始绘制图形\r\n\t\tctx.clearRect(0,0,width,height);\r\n\t\t\r\n\t\t//绘制包围背景\r\n\t\tctx.beginPath();\r\n\t\tfor(var i=0,x=0;x<=width;i++,x+=scale) {\r\n\t\t\tif (x==0) {\r\n\t\t\t\tctx.moveTo(x,path1[i]);\r\n\t\t\t}else {\r\n\t\t\t\tctx.lineTo(x,path1[i]);\r\n\t\t\t};\r\n\t\t};\r\n\t\ti--;\r\n\t\tfor(var x=width-1;x>=0;i--,x-=scale) {\r\n\t\t\tctx.lineTo(x,path2[i]);\r\n\t\t};\r\n\t\tctx.closePath();\r\n\t\tctx.fillStyle=This.linearBg;\r\n\t\tctx.fill();\r\n\t\t\r\n\t\t//绘制线\r\n\t\tThis.drawPath(path2,This.linear2);\r\n\t\tThis.drawPath(path1,This.linear1);\r\n\t}\r\n\t,drawPath:function(path,linear){\r\n\t\tvar This=this,set=This.set;\r\n\t\tvar ctx=This.ctx;\r\n\t\tvar scale=set.scale;\r\n\t\tvar width=set.width*scale;\r\n\t\t\r\n\t\tctx.beginPath();\r\n\t\tfor(var i=0,x=0;x<=width;i++,x+=scale) {\r\n\t\t\tif (x==0) {\r\n\t\t\t\tctx.moveTo(x,path[i]);\r\n\t\t\t}else {\r\n\t\t\t\tctx.lineTo(x,path[i]);\r\n\t\t\t};\r\n\t\t};\r\n\t\tctx.lineWidth=set.lineWidth*scale;\r\n\t\tctx.strokeStyle=linear;\r\n\t\tctx.stroke();\r\n\t}\r\n};\r\nRecorder[ViewTxt]=WaveView;\r\n\r\n\t\r\n}));"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"script","externalDependencies":[]}