AudioWorkletGlobalScope.registerProcessor
The registerProcessor method of the AudioWorkletGlobalScope interface registers a class constructor derived from AudioWorkletProcessor interface under a specified name.
Syntax
AudioWorkletGlobalScope.registerProcessor(name, processorCtor);
Parameters
name-
A string representing the name under which the processor will be registered.
processorCtor-
The constructor of a class derived from
AudioWorkletProcessor.
Note: A key-value pair { name: constructor } is saved internally in the AudioWorkletGlobalScope once the processor is registered. The name is to be referred to when creating an AudioWorkletNode based on the registered processor. A new processor by the given name is internally created and associated with the new node.
Return value
undefinedExceptions
-
NotSupportedErrorDOMException -
Thrown under the following conditions:
- The name is an empty string.
- A constructor under the given name is already registered. Registering the same name twice is not allowed.
-
TypeErrorDOMException -
Thrown under the following conditions:
- The processorCtor is not a callable constructor.
- The
parameterDescriptorsproperty of the constructor exists and doesn't return an array ofAudioParamDescriptor-based objects.
Examples
In this example we create a custom AudioWorkletNode that outputs silence.
First, we need to define a custom AudioWorkletProcessor and register it. Note that this should be done in a separate file.
// test-processor.js class TestProcessor extends AudioWorkletProcessor { process (inputs, outputs, parameters) { return true } } registerProcessor('test-processor', TestProcessor)
Next, in our main script file we'll load the processor, create an instance of AudioWorkletNode — passing it the processor name that we used when calling registerProcessor — and connect it to an audio graph.
const audioContext = new AudioContext() await audioContext.audioWorklet.addModule('test-processor.js') const node = new AudioWorkletNode(audioContext, 'test-processor') node.connect(audioContext.destination)
Specifications
Browser compatibility
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
registerProcessor |
66 |
79 |
76 |
No |
53 |
No |
66 |
66 |
No |
47 |
No |
9.0 |
See also
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/AudioWorkletGlobalScope/registerProcessor