AudioWorkletGlobalScope: registerProcessor() メソッド
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2021年4月.
AudioWorkletGlobalScope インターフェイスの registerProcessor メソッドは、AudioWorkletProcessor インターフェイスから派生したクラスのコンストラクターを指定の name で登録します。
構文
registerProcessor(name, processorCtor)
引数
name-
処理器を登録する名前を表す文字列です。
processorCtor-
AudioWorkletProcessorから派生したクラスのコンストラクターです。
メモ:
処理器を登録すると、キーと値のペア { name: constructor } が内部で AudioWorkletGlobalScope に保存されます。登録した処理器をもとに AudioWorkletNode を生成するとき、name が参照されます。指定の名前によって新しい処理器が内部で生成され、新しいノードと関連付けられます。
返値
なし (undefined)
例外
NotSupportedErrorDOMException-
以下のとき投げられます。
nameが空文字列のとき。- 指定の
nameでコンストラクターが既に登録されているとき。 同じ名前を 2 回登録することは許されません。
TypeError-
以下のとき投げられます。
processorCtorが呼び出し可能なコンストラクターではないとき。- コンストラクターに
parameterDescriptorsプロパティが存在し、AudioParamDescriptorベースのオブジェクトの配列を返さなかったとき。
例
この例では、無音を出力する独自の AudioWorkletNode を作成します。
まず、独自の AudioWorkletProcessor を定義して登録する必要があります。これは別のファイルで行うことに注意してください。
// test-processor.js
class TestProcessor extends AudioWorkletProcessor {
process(inputs, outputs, parameters) {
return true;
}
}
registerProcessor("test-processor", TestProcessor);
次に、メインスクリプトファイルで処理器をロードし、registerProcessor を呼ぶときに用いた処理器の名前を渡して AudioWorkletNode のインスタンスを生成し、それを音声グラフに接続します。
const audioContext = new AudioContext();
await audioContext.audioWorklet.addModule("test-processor.js");
const node = new AudioWorkletNode(audioContext, "test-processor");
node.connect(audioContext.destination);
仕様書
| Specification |
|---|
| Web Audio API> # dom-audioworkletglobalscope-registerprocessor> |
ブラウザーの互換性
Loading…