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()
생성자는 AudioWorkletNode
의 근본적인 오디오 프로세싱 메커니즘을 나타내는 새로운 AudioWorkletProcessor
객체를 생성합니다.
구문
참고: AudioWorkletProcessor
와 이것으로부터 파생된 클래스들은
사용자에 의해 제공된 코드로부터 직접적으로 초기화될 수 없습니다.
대신, 이것들은 오직 연관된 AudioWorkletNode
들의 생성에 의해서만 내부적으로 생성됩니다.
new AudioWorkletProcessor(options);
매개변수
options
-
AudioWorkletNode constructor
에 options 매개변수로서 전달되고 structured clone algorithm에 통과되는 객체. 사용 가능한 속성들은 다음과 같습니다:numberOfInputs
Optional-
numberOfInputs
속성을 초기화할 값. 기본 값은 1입니다. numberOfOutputs
Optional-
numberOfOutputs
속성을 초기화할 값. 기본 값은 1입니다. outputChannelCount
Optional-
각 출력에 대한 채널의 수를 정의하는 배열. 예를 들자면, outputChannelCount: [n, m] 은 첫번째 출력의 채널의 수를 n 으로, 두번째 출력을 m 으로 명시합니다. 배열의 길이는 반드시
numberOfOutputs
와 일치해야 합니다. parameterData
Optional-
key
가 사용자 정의 파라미터의 이름이고value
가 이것의 초기 값인 채로, (이 노드의parameters
속성에 있는) 이 노드의 사용자 정의AudioParam
의 초기 값들을 포함하는 객체. processorOptions
Optional-
근본적인
AudioWorkletProcessor
의 사용자 정의 초기화에 사용될 수 있는 모든 추가적인 데이터
처음 두 개의 속성에 대해 기본 값이 있어서,
AudioWorkletNode constructor
에 전달되는 options 객체가 없을지라도, 노드에 의해AudioWorkletProcessor
생성자에 전달된 options 객체는 존재할 것이고 최소한numberOfInputs
과numberOfOutputs
을 가질 것이라는 데 주목하세요.
반환 값
새롭게 생성된 AudioWorkletProcessor
인스턴스.
예제
이 예제에서 우리는 AudioWorkletNode constructor
에 사용자 정의 옵션들을 전달하고 어떻게 그것들의 structured
clone이 우리의 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);
다음으로, 메인 스크립트 파일에서 우리는 프로세서를 로드하고, AudioWorkletNode
에 프로세서의 이름과 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
인터페이스