我正在尝试获取麦克风数据的一些实时数据。因此,我将ScriptProcessorNode连接到实时音频的输出,如下所示(咖啡脚本):

audioSource = navigator.getUserMedia({audio:true},(stream)->
    source = context.createMediaStreamSource(stream)

    analyser = context.createScriptProcessor(1024,1,1)
    source.connect(analyser)

    analyser.onaudioprocess = (e)->
        \\Processing Takes Place here


但是,永远不会调用onaudioprocess函数。我需要怎么做才能使其运行?

最佳答案

如果ScriptProcesseronaudioprocess事件的输出未连接到其他节点,则该事件将不会开始。

您可以选中此fiddle来查看其运行情况。

var scr = context.createScriptProcessor(1024,1,1);

// uncomment the line below and onaudioprocess will start
//scr.connect(context.destination);

scr.onaudioprocess = function(){
    console.log('test');
};


只需将ScriptProcessor的输出连接到context.destination或虚拟gain节点,onaudioprocess将启动。

09-25 14:45