Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

AudioContext.createJavaScriptNode()

我们的志愿者还没有将这篇文章翻译为 中文 (简体)加入我们帮助完成翻译!

This method is obsolete, and has been renamed to  AudioContext.createScriptProcessor. See also ScriptProcessorNode.

Obsolete
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.

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

Important: This method is obsolete, and has been renamed to  AudioContext.createScriptProcessor. See also ScriptProcessorNode.

 

Syntax

 

AudioContext.createJavaScriptNode(bufferSize, numInputChannels, numOutputChannels)

Parameters

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.

Example

The following script illustrates the use of createJavaScriptNode():

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();
}

See also

文档标签和贡献者

 此页面的贡献者: JDrone_, teoli, chrisdavidmills, kevincennis, progysm, Btipling
 最后编辑者: JDrone_,