AudioWorkletProcessor: AudioWorkletProcessor() コンストラクター
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2021年4月以降、すべてのブラウザーで利用可能です。
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 の複製
仕様書
| 仕様書 |
|---|
| Web Audio API> # dom-audioworkletprocessor-audioworkletprocessor> |
ブラウザーの互換性
関連情報
AudioWorkletNodeインターフェイス