【问题标题】:How to migrate to AudioWorkletNode from ScriptProcessorNode如何从 ScriptProcessorNode 迁移到 AudioWorkletNode
【发布时间】:2021-09-01 13:24:18
【问题描述】:

目前我有以下代码

AudioContext = window.AudioContext || window.webkitAudioContext;
context = new AudioContext({latencyHint: 'interactive'});
processor = context.createScriptProcessor(bufferSize, 1, 1);
processor.connect(context.destination);
context.resume();

我需要迁移 AudioWorkletNode。这里的主要功能是“createScriptProcessor”。我正在努力寻找与此类似的东西。 请帮忙!

【问题讨论】:

    标签: javascript reactjs web-audio-api


    【解决方案1】:

    您需要更复杂的东西,而不是createScriptProcessor。你可以找到几个examples in the spec itself。有other demos,基本的Hello Audio Worklet 是一个很好的起点。

    【讨论】:

      【解决方案2】:

      变成两行:

      await context.audioWorklet.addModule( url_worklet );
      processor = new AudioWorkletNode( context , 'worklet-processor', {} );
      

      并且“processor.onaudioprocess”函数的内容会转到一个外部对象,但你仍然可以将它写在同一个脚本中,如下所示:

      let url_worklet = URL.createObjectURL( new Blob([ '(', function(){
      
        class WorkletProcessor extends AudioWorkletProcessor { 
          constructor (options) { super(); }
          process(inputs, outputs) {
      
            console.log( inputs[0][0] ); // the onaudioprocess code here
      
            return true; 
          }
        }
        registerProcessor('worklet-processor', WorkletProcessor);
      
      }.toString(), ')()' ], { type: 'application/javascript' } ) );
          
      

      名称“WorkletProcessor”和“'worklet-processor'”可以编辑。

      享受

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-23
        • 2021-07-18
        • 2019-11-11
        • 2018-10-28
        • 2010-10-13
        • 2018-10-25
        • 2019-05-31
        • 2016-11-09
        相关资源
        最近更新 更多