AudioWorkletProcessor: AudioWorkletProcessor() コンストラクター
AudioWorkletProcessor()
コンストラクターは新しい AudioWorkletProcessor
オブジェクトを生成します。このオブジェクトは AudioWorkletNode
で用いる音声処理の仕組みを表します。
構文
メモ: AudioWorkletProcessor
とその派生クラスは、ユーザーのコードから直接生成することはできません。これらは対応する AudioWorkletNode
の生成に伴って内部でのみ生成されます。
new AudioWorkletProcessor(options)
引数
options
-
AudioWorkletNode のコンストラクター
の引数options
に渡されたオブジェクトです。構造化複製アルゴリズムを経由して渡されます。 以下のプロパティが利用できます。numberOfInputs
省略可-
numberOfInputs
プロパティを初期化する値です。デフォルト値は 1 です。 numberOfOutputs
省略可-
numberOfOutputs
プロパティを初期化する値です。デフォルト値は 1 です。 outputChannelCount
省略可-
それぞれの出力のチャンネル数を決める 配列 です。たとえば、
outputChannelCount: [n, m]
は最初の出力のチャンネル数をn
に、2 番目の出力のチャンネル数をm
に設定します。配列の長さはnumberOfOutputs
に一致しなければなりません。 parameterData
省略可-
このノード (の
parameters
プロパティ) の独自のAudioParam
オブジェクトの初期値が入ったオブジェクトです。キーを独自プロパティの名前、値を初期値とします。 processorOptions
省略可-
用いる
AudioWorkletProcessor
の独自の初期化に用いる任意の追加データです。
なお、最初の 2 個のプロパティにはデフォルト値があるので、
AudioWorkletNode のコンストラクター
にoptions
オブジェクトが渡されなかった場合でも、ノードからAudioWorkletProcessor
のコンストラクターにはoptions
オブジェクトが渡され、このオブジェクトには少なくともnumberOfInputs
とnumberOfOutputs
があります。
返値
新しく構築された AudioWorkletProcessor
のインスタンスを返します。
例
この例では、AudioWorkletNode constructor
に独自のオプションを渡し、その構造化複製が AudioWorkletProcessor
のコンストラクターに渡される様子を観察します。
まず、独自の AudioWorkletProcessor
を定義して登録する必要があります。
これは別のファイルで行うことに注意してください。
// test-processor.js
class TestProcessor extends AudioWorkletProcessor {
constructor(options) {
super();
console.log(options.numberOfInputs);
console.log(options.processorOptions.someUsefulVariable);
}
process(inputs, outputs, parameters) {
return true;
}
}
registerProcessor("test-processor", TestProcessor);
次に、メインスクリプトファイルで処理器をロードし、この処理器の名前と options
オブジェクトを渡して AudioWorkletNode
のインスタンスを生成します。
options
オブジェクトでは、someUsefulVariable
キーに Map
のインスタンスを入れた processorOptions
を渡します。numberOfInputs
は渡さず、デフォルト値が設定される様子を観察します。
const audioContext = new AudioContext();
await audioContext.audioWorklet.addModule("test-processor.js");
const testNode = new AudioWorkletNode(audioContext, "test-processor", {
processorOptions: {
someUsefulVariable: new Map([
[1, "one"],
[2, "two"],
]),
},
});
コンソールに以下のように出力されます。
> 1 // AudioWorkletNode options.numberOfInputs はデフォルトに設定される > Map(2) { 1 => "one", 2 => "two" } // someUsefulVariable で設定した Map の複製
仕様書
Specification |
---|
Web Audio API # dom-audioworkletprocessor-audioworkletprocessor |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
AudioWorkletNode
インターフェイス