AudioWorkletProcessor: AudioWorkletProcessor() コンストラクター
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.
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
インターフェイス