所以,我刚刚发现你可以使用javascript记录声音。太棒了!
我立即创建了一个新的项目来做我自己的事情。然而,当我打开示例脚本的源代码时,我发现根本没有解释性注释。
我开始在谷歌上搜索,发现了一篇关于AudioContext的长而有趣的文章,它根本没有意识到录音(它只提到remixinf声音)和MDN文章,包含了所有的信息-成功地隐藏了我要找的那个。
我也知道现有的框架处理的事情(不知何故,也许)。但如果我想要一个录音机,我会下载一个——但我真的很好奇这东西是如何工作的。
现在,我不仅不熟悉的编码部分的东西,我也很好奇整个事情将如何工作-我是否得到强度在特定的时间?就像任何示波器一样?或者我已经得到了样品的光谱分析?
所以,只是为了避免任何错误:请,谁能解释最简单和最直接的方式来获得输入数据使用上述API,并最终提供解释性注释的代码?
如果你只是想使用麦克风输入作为WebAudio API的源,下面的代码为我工作。它基于:https://gist.github.com/jarlg/250decbbc50ce091f79e
navigator.getUserMedia = navigator.getUserMedia
|| navigator.webkitGetUserMedia
|| navigator.mozGetUserMedia;
navigator.getUserMedia({video:false,audio:true},callback,console.log);
function callback(stream){
ctx = new AudioContext();
mic = ctx.createMediaStreamSource(stream);
spe = ctx.createAnalyser();
spe.fftSize = 256;
bufferLength = spe.frequencyBinCount;
dataArray = new Uint8Array(bufferLength);
spe.getByteTimeDomainData(dataArray);
mic.connect(spe);
spe.connect(ctx.destination);
draw();
}