过时
This feature is obsolete. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.

AudioContext.createJavaScriptNode() method creates a JavaScriptNode which is used for directly manipulating audio data with JavaScript.

重要 : This method is obsolete, and has been renamed to AudioContext.createScriptProcessor() 。另请参阅 ScriptProcessorNode .

句法

var jsNode = audioCtx.createJavaScriptNode(bufferSize, numInputChannels, numOutputChannels);
					

参数

bufferSize

The buffer size must be in units of sample frames, i.e., one of: 256, 512, 1024, 2048, 4096, 8192, or 16384. It controls the frequency of callbacks asking for a buffer refill. Smaller sizes allow for lower latency and higher for better overall quality.

numInputChannels

The number of input channels in the audio stream.

numOutputChannels

The number of output channels in the audio stream.

范例

The following script illustrates the use of createJavaScriptNode() :

var SineWave = function(context) {
  var that = this;
  this.x = 0; // Initial sample number
  this.context = context;
  this.node = context.createJavaScriptNode(1024, 1, 1);
  this.node.onaudioprocess = function(e) { that.process(e) };
}
SineWave.prototype.process = function(e) {
  var data = e.outputBuffer.getChannelData(0);
  for (var i = 0; i < data.length; ++i) {
    data[i] = Math.sin(this.x++);
  }
}
SineWave.prototype.play = function() {
  this.node.connect(this.context.destination);
}
SineWave.prototype.pause = function() {
  this.node.disconnect();
}
					

另请参阅

元数据

  • 最后修改: