AudioContext.createScriptProcessor()

AudioContext の createScriptProcessor() メソッドを利用することで、ダイレクトな音声処理ができる ScriptProcessorNode オブジェクトを作成できます。

注意: このノードの利用方法に関しては ScriptProcessorNode をご覧ください。

構文

 ScriptProcessorNode             createScriptProcessor (optional unsigned long bufferSize = 0 , optional unsigned long numberOfInputChannels = 2 , optional unsigned long numberOfOutputChannels = 2 );

createScriptProcessor()の利用例は以下の通りになります。Web Audio API が提供する機能では望む音声処理を実現できない場合に、このメソッドを利用します。これを利用することで、どの様な音声処理でも記述できます。

SineWave = function(context) {
  var that = this;
  this.x = 0; // Initial sample number
  this.context = context;
  this.node = context.createScriptProcessor(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();
}

引数

bufferSize
サンプルフレームを単位としたバッファのサイズです。指定する場合は、次のいずれかの値でなくてはなりません: 256, 512, 1024, 2048, 4096, 8192, 16384 。指定されない場合、もしくは 0 が指定された場合、環境における最適な値が設定されます。この値はノードが生存する限り同じ値が利用され、その値は 2 の冪上です。
この値は audioprocess イベントの発生頻度と、イベントごとに渡されるサンプルフレームの大きさを決めます。小さい値を指定すると低遅延となり、大きな値を指定すると音声の破損やグリッチを避けられます。この値は自分で決めず、実装に決めさせることが遅延と品質の面から推奨されます。
numberOfInputChannels
入力のチャンネル数を整数で指定します。デフォルト値は 2 で、最大 32 チャンネルまでサポートします。
numberOfOutputChannels
出力するチャンネル数を整数で指定します。デフォルト値は 2 で、最大 32 チャンネルまでサポートします。

Important: Webkit currently (version 31) requires that a valid bufferSize be passed when calling this method.

注意: numberOfInputChannelsnumberOfOutputChannels の両方に 0 を指定することはできません。

返り値

A ScriptProcessorNode.

ブラウザ互換性

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung Internet
Basic supportChrome Full support 35
Full support 35
No support 14 — 57
Prefixed
Prefixed Requires the vendor prefix: webkit
Edge Full support YesFirefox Full support 25IE No support NoOpera Full support 22
Full support 22
No support 15 — 44
Prefixed
Prefixed Requires the vendor prefix: webkit
Safari Full support 6
Prefixed
Full support 6
Prefixed
Prefixed Requires the vendor prefix: webkit
WebView Android Full support YesChrome Android Full support 35
Full support 35
No support 18 — 57
Prefixed
Prefixed Requires the vendor prefix: webkit
Edge Mobile Full support YesFirefox Android Full support 26Opera Android Full support 22
Full support 22
No support 15 — 44
Prefixed
Prefixed Requires the vendor prefix: webkit
Safari iOS ? Samsung Internet Android Full support Yes
Full support Yes
No support ? — 7.0
Prefixed
Prefixed Requires the vendor prefix: webkit
AudioContext() constructorChrome Full support 55
Notes
Full support 55
Notes
Notes Each tab is limited to 6 audio contexts in Chrome; attempting to create more will throw a DOMException. For details see Per-tab audio context limitation in Chrome.
Notes If latencyHint isn't valid, Chrome throws a TypeError exception. See Non-standard exceptions in Chrome for details.
Edge Full support YesFirefox Full support 25IE No support NoOpera Full support 42Safari Full support Yes
Prefixed
Full support Yes
Prefixed
Prefixed Requires the vendor prefix: webkit
WebView Android Full support 55Chrome Android Full support 55
Notes
Full support 55
Notes
Notes Each tab is limited to 6 audio contexts in Chrome; attempting to create more will throw a DOMException. For details see Per-tab audio context limitation in Chrome.
Notes If latencyHint isn't valid, Chrome throws a TypeError exception. See Non-standard exceptions in Chrome for details.
Edge Mobile ? Firefox Android Full support 25Opera Android Full support 42Safari iOS ? Samsung Internet Android Full support 6.0
baseLatency
Experimental
Chrome Full support 58Edge ? Firefox No support NoIE No support NoOpera Full support 45Safari No support NoWebView Android Full support 58Chrome Android Full support 58Edge Mobile ? Firefox Android No support NoOpera Android Full support 45Safari iOS No support NoSamsung Internet Android No support No
outputLatencyChrome No support NoEdge ? Firefox No support NoIE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoEdge Mobile ? Firefox Android No support NoOpera Android No support NoSafari iOS ? Samsung Internet Android No support No
closeChrome Full support 42Edge ? Firefox Full support 40IE No support NoOpera Full support YesSafari ? WebView Android Full support 43Chrome Android Full support 43Edge Mobile ? Firefox Android Full support 40Opera Android Full support YesSafari iOS ? Samsung Internet Android Full support 4.0
createMediaElementSourceChrome Full support 14Edge Full support 12Firefox Full support 25IE No support NoOpera Full support 15Safari Full support 6WebView Android Full support YesChrome Android Full support 18Edge Mobile Full support YesFirefox Android Full support 26Opera Android Full support 15Safari iOS ? Samsung Internet Android Full support Yes
createMediaStreamSourceChrome Full support 14Edge Full support 12Firefox Full support 25IE No support NoOpera Full support 15Safari Full support 6WebView Android Full support YesChrome Android Full support 18Edge Mobile Full support YesFirefox Android Full support 26Opera Android Full support 15Safari iOS ? Samsung Internet Android Full support Yes
createMediaStreamDestinationChrome Full support 14Edge Full support YesFirefox Full support 25IE No support NoOpera Full support 15Safari Full support 6WebView Android Full support YesChrome Android Full support 18Edge Mobile Full support YesFirefox Android Full support 26Opera Android Full support 15Safari iOS ? Samsung Internet Android Full support Yes
createMediaStreamTrackSource
Experimental
Chrome ? Edge ? Firefox No support NoIE No support NoOpera ? Safari No support NoWebView Android ? Chrome Android ? Edge Mobile ? Firefox Android No support NoOpera Android ? Safari iOS No support NoSamsung Internet Android ?
getOutputTimestamp
Experimental
Chrome Full support 57Edge ? Firefox No support NoIE No support NoOpera Full support 44Safari No support NoWebView Android Full support 57Chrome Android Full support 57Edge Mobile ? Firefox Android No support NoOpera Android Full support 44Safari iOS No support NoSamsung Internet Android Full support 7.0
suspendChrome Full support 43Edge ? Firefox Full support 40IE No support NoOpera Full support YesSafari ? WebView Android Full support 43Chrome Android Full support 43Edge Mobile ? Firefox Android Full support 40Opera Android Full support YesSafari iOS ? Samsung Internet Android Full support 4.0

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
Experimental. Expect behavior to change in the future.
Experimental. Expect behavior to change in the future.
See implementation notes.
See implementation notes.
Requires a vendor prefix or different name for use.
Requires a vendor prefix or different name for use.

仕様

Specification Status Comment
Web Audio API
The definition of 'AudioContext' in that specification.
Working Draft  

関連情報

ドキュメントのタグと貢献者

このページの貢献者: fscholz, nshimizu
最終更新者: nshimizu,