所以,我发现你可以record sound using javascript。那太棒了!
我正在创建一个自己做点什么的新项目。但是,只要我打开示例脚本的源代码,我就发现根本没有解释性注释。
我开始谷歌搜索,发现long and interesting article about AudioContext根本没有注意到录音(它只提到remixinf声音)和MDN article,其中包含所有信息 - 成功隐藏我之后的那个。
我也知道existing frameworks处理这件事(不知何故,也许)。但是,如果我想要一个录音机我会下载一个 - 但我真的很好奇它是如何工作的。
现在,不仅我不熟悉事物的编码部分,我也很好奇整个事情是如何运作的 - 我是否在特定时间内得到强度?在任何测试仪中都很像? 或者我可以对样品进行光谱分析吗?
所以,只是为了避免任何错误:请问,是否有人可以解释使用上述API获取输入数据的最简单,最直接的方法,并最终提供带有解释性注释的代码?
答案 0 :(得分:1)
如果您只是想将麦克风输入用作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();
}