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.
注意: numberOfInputChannels
と numberOfOutputChannels
の両方に 0 を指定することはできません。
返り値
ブラウザ互換性
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | 10.0webkit 35 (unprefixed) |
25.0 (25.0) | Not supported | 15.0webkit 22 (unprefixed) |
6.0webkit |
createStereoPanner() |
42.0 | 37.0 (37.0) | Not supported | Not supported | Not supported |
Feature | Android | Firefox Mobile (Gecko) | Firefox OS | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
Basic support | Not supported | 37.0 (37.0) | 2.2 | Not supported | Not supported | Not supported | (Yes) |
仕様
Specification | Status | Comment |
---|---|---|
Web Audio API The definition of 'AudioContext' in that specification. |
Working Draft |