【发布时间】:2014-11-08 07:04:48
【问题描述】:
我正在尝试生成静态波形,例如在带有 webaudio 和画布的音频编辑应用程序中。现在我正在加载一个 mp3,创建一个缓冲区,遍历 getChannelData 返回的数据。
问题是..我不太明白返回的是什么。
- getChannelData 返回什么 - 是否适合波形?
- 如何调整(样本大小?)以获得一个峰值 == 一秒?
-
为什么约 50% 的值为负数?
ctx.decodeAudioData(req.response, function(buffer) { buf = buffer; src = ctx.createBufferSource(); src.buffer = buf; //create fft fft = ctx.createAnalyser(); var data = new Uint8Array(samples); fft.getByteFrequencyData(data); bufferL = buf.getChannelData(0) for(var i = 0; i<buf.length; i++){ n = bufferL[i*(1000)] gfx.beginPath(); gfx.moveTo(i +0.5, 300); gfx.lineTo(i +0.5, 300 + (-n*100)); gfx.stroke();
我正在生成的内容:
我想生成什么:
谢谢
【问题讨论】:
标签: javascript canvas web-audio-api waveform