【Audio】AudioContext中的ScriptProcessorNode接口和AudioProcessingEvent接口详解

来源:互联网 发布:大数据安全保密制度 编辑:程序博客网 时间:2024/05/16 15:02
 ScriptProcessorNode  node = context.createScriptProcessor(bufferSize, numberOfInputChannels, numberOfOutputChannels);


   ScriptProcessorNode 接口

   interface ScriptProcessorNode : AudioNode {
    attribute EventHandler onaudioprocess;
    readonly attribute long bufferSize;
  };

   ScriptProcessorNode接口:这个接口是一个AudioNode类型的,它作用是用JavaScript来生成、处理或分析audio。


   构造ScriptProcessorNode时需要一个bufferSize参数, bufferSize的值必须是256, 512, 1024, 2048, 4096, 8192, 16384其中一个


   bufferSize这个值是控制着多长时间需触发一次audioprocess事件。无论有多少这样的帧每次都需要调用它


   ScriptProcessorNode中最少有一个输入或输出被连接的话,那么就触发audioprocess事件。


   如果bufferSize选择的值越小,那么返回数据时延迟时间越短。


   如果bufferSize选择的值越大,那么会避免audio输入的数据间隔过大或出现其它问题。


   如果createScriptProcessor函数中bufferSize为null或0的话,那么bufferSize这个值会自动选择一个值


   numberOfInputChannels 和 numberOfOutputChannels 确定输入管道或输出管道的数据,numberOfInputChannels 和 numberOfOutputChannels二者有一个为0,它就是个数据是无效的


   AudioProcessingEvent:Event接口
   interface AudioProcessingEvent : Event {
      readonly attribute double playbackTime;
      readonly attribute AudioBuffer inputBuffer;
      readonly attribute AudioBuffer outputBuffer;
  };


   这个事件对象作为ScriptProcessorNode节点的audioprocess函数中的参数发送过来的。


   AudioProcessiongEvent事件有三个属性


   readonly attribute double playbackTime;

   当前音频播放的位置


   readonly attribute AudioBuffer inputBuffer;

   一个包含AudioBuffer的输入音频数据。这个数值等同于createScriptProcessor()函数的numberOfInputChannels参数,这个AudioBuffer仅在onaudioprocess函数中有效,在函数外是无效的。


   readonly attribute AudioBuffer outputBuffer;
   一个包含AudioBuffer的输出音频数据.这个数值等同于createScriptProcessor()函数的numberOfOutputChannels参数,这个AudioBuffer仅在onaudioprocess函数中有效,在函数外是无效的。

2 0
原创粉丝点击