--- title: AudioContext.createScriptProcessor() slug: Web/API/BaseAudioContext/createScriptProcessor translation_of: Web/API/BaseAudioContext/createScriptProcessor original_slug: Web/API/AudioContext/createScriptProcessor ---
{{ APIRef("AudioContext") }}
{{ domxref("AudioContext") }} の createScriptProcessor() メソッドを利用することで、ダイレクトな音声処理ができる {{domxref("ScriptProcessorNode")}} オブジェクトを作成できます。
注意: このノードの利用方法に関しては {{domxref("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
audioprocess
イベントの発生頻度と、イベントごとに渡されるサンプルフレームの大きさを決めます。小さい値を指定すると低遅延となり、大きな値を指定すると音声の破損やグリッチを避けられます。この値は自分で決めず、実装に決めさせることが遅延と品質の面から推奨されます。numberOfInputChannels
numberOfOutputChannels
Important: Webkit currently (version 31) requires that a valid bufferSize
be passed when calling this method.
注意: numberOfInputChannels
と numberOfOutputChannels
の両方に 0 を指定することはできません。
A {{domxref("ScriptProcessorNode")}}.
{{page("/en-US/docs/Web/API/AudioContext","Browser_compatibility")}}
{{page("/en-US/docs/Web/API/AudioContext","Specifications")}}
{{page("/en-US/docs/Web/API/AudioContext","See_also")}}