BaseAudioContext
Web Audio API의 BaseAudioContext 인터페이스는 AudioContext 와 OfflineAudioContext에 의해 표현되는 온라인과 오프라인 오디오 프로세싱 그래프에 대한 기본 정의로 작동합니다. BaseAudioContext는 직접적으로 사용될 수 없습니다. 대신 위에서 언급한 두 상속 인터페이스를 통해 BaseAudioContext의 기능을 사용할 수 있습니다.
BaseAudioContext는 이벤트의 타겟이 될 수 있는데, 따라서 이것은 EventTarget 인터페이스를 구현합니다.
속성
BaseAudioContext.audioWorklet(en-US) Experimental 읽기 전용 Secure context-
AudioWorklet객체를 반환하는데, 이는AudioWorkletProcessor인터페이스를 구현하는 JavaScript 코드가 오디오 데이터를 처리하기 위해 백그라운드에서 실행되는AudioNode들을 생성하고 관리하는 데 쓰일 수 있습니다. BaseAudioContext.currentTime(en-US) 읽기 전용-
스케쥴링에 사용되는 초 단위로 계속 증가하는 하드웨어 시간을 나타내는 double을 반환합니다. 이는
0에서 시작합니다. BaseAudioContext.destination(en-US) 읽기 전용-
컨텍스트 내의 모든 오디오의 최종 도착지를 나타내는
AudioDestinationNode를 반환합니다. 이것은 오디오를 렌더링하는 장치로 생각될 수 있습니다. BaseAudioContext.listener(en-US) 읽기 전용-
3D 공간화에 사용되는
AudioListener(en-US) 객체를 반환합니다. BaseAudioContext.sampleRate(en-US) 읽기 전용-
이 컨텍스트 내의 모든 노드에 의해 사용되는 샘플 레이트(초당 샘플)를 나타내는 float을 반환합니다.
AudioContext의 샘플 레이트는 변경될 수 없습니다. BaseAudioContext.state(en-US) 읽기 전용-
AudioContext의 현재 상태를 반환합니다.
이벤트 처리기
statechange(en-US)-
statechange 유형의 이벤트가 발생되었을 때 실행되는 이벤트 처리기입니다. 이것은 상태 변화 메서드(
AudioContext.suspend(en-US),AudioContext.resume(en-US), 또는AudioContext.close(en-US)) 중 하나의 호출에 기인해AudioContext의 상태가 변경되었을 때 발생됩니다.
메서드
또한 EventTarget 인터페이스로부터의 메서드를 구현합니다.
BaseAudioContext.createAnalyser()(en-US)-
오디오 시간과 주파수 데이터를 드러내고 데이터 시각화를 생성하는 데 사용될 수 있는
AnalyserNode를 생성합니다. BaseAudioContext.createBiquadFilter()(en-US)-
high-pass, low-pass, band-pass와 같은 몇몇 다른 흔한 필터 유형으로 설정 가능한 2차 필터를 나타내는
BiquadFilterNode를 생성합니다. BaseAudioContext.createBuffer()(en-US)-
데이터를 넣거나
AudioBufferSourceNode를 통해 재생될 수 있는 새로운 빈AudioBuffer객체를 생성합니다. BaseAudioContext.createBufferSource()(en-US)-
AudioBuffer객체 내부에 포함된 오디오 데이터를 재생하거나 조작하기 위해 사용될 수 있는AudioBufferSourceNode를 생성합니다.AudioBuffer들은AudioContext.createBuffer()(en-US)를 사용해 생성되거나 성공적으로 오디오 트랙을 디코드했을 때AudioContext.decodeAudioData()(en-US)에 의해 반환됩니다. BaseAudioContext.createConstantSource()(en-US)-
샘플이 모두 같은 값을 가지고 있는 모노럴의(한 채널의) 사운드 신호를 계속적으로 출력하는 오디오 소스인
ConstantSourceNode(en-US) 객체를 생성합니다. BaseAudioContext.createChannelMerger()(en-US)-
다수의 오디오 스트림으로부터 하나의 오디오 스트림에 채널을 결합하기 위해 사용되는
ChannelMergerNode(en-US)를 생성합니다. BaseAudioContext.createChannelSplitter()(en-US)-
오디오 스트림의 각 채널에 접근하고 별도로 그것들을 처리하기 위해 사용되는
ChannelSplitterNode(en-US)를 생성합니다. BaseAudioContext.createConvolver()(en-US)-
오디오 그래프에 잔향(reverberation) 효과와 같은 콘볼루션 이펙트를 적용하기 위해 사용될 수 있는
ConvolverNode(en-US)를 생성합니다. BaseAudioContext.createDelay()(en-US)-
들어오는 오디오 신호를 지연시키기 위해 사용되는
DelayNode(en-US)를 생성합니다. 이 노드는 Web Audio API 그래프에서 피드백 루프를 생성하는 데 유용합니다. BaseAudioContext.createDynamicsCompressor()(en-US)-
음향 압축(acoustic compression)을 오디오 신호에 적용하기 위해 사용될 수 있는
DynamicsCompressorNode(en-US)를 생성합니다. BaseAudioContext.createGain()(en-US)-
오디오 그래프의 전반적인 볼륨을 제어하기 위해 사용될 수 있는
GainNode(en-US)를 생성합니다. BaseAudioContext.createIIRFilter()(en-US)-
몇몇 다른 흔한 필터 유형으로 설정 가능한 2차 필터를 나타내는
IIRFilterNode(en-US)를 생성합니다. BaseAudioContext.createOscillator()(en-US)-
주기적인 파형을 나타내는 소스인
OscillatorNode(en-US)를 생성합니다. 이것은 기본적으로 음색을 생성합니다. BaseAudioContext.createPanner()(en-US)-
들어오는 오디오 스트림을 3D 공간에서 공간화하기 위해 사용되는
PannerNode(en-US)를 생성합니다. BaseAudioContext.createPeriodicWave()-
OscillatorNode(en-US)의 출력을 결정하기 위해 사용될 수 있는 주기적인 파형을 정의하는 데 쓰이는PeriodicWave를 생성합니다. BaseAudioContext.createScriptProcessor()(en-US) 지원이 중단되었습니다-
JavaScript를 통한 직접적인 오디오 프로세싱을 위해 사용될 수 있는
ScriptProcessorNode(en-US)를 생성합니다. BaseAudioContext.createStereoPanner()(en-US)-
오디오 소스에 스테레오 패닝을 적용하기 위해 사용될 수 있는
StereoPannerNode(en-US)를 생성합니다. BaseAudioContext.createWaveShaper()(en-US)-
비선형 변형(non-linear distortion) 효과를 구현하기 위해 사용되는
WaveShaperNode(en-US)를 생성합니다. BaseAudioContext.decodeAudioData()(en-US)-
비동기적으로
ArrayBuffer에 포함된 오디오 파일 데이터를 디코드합니다. 이 경우, ArrayBuffer는 보통arraybuffer에responseType을 설정한 후XMLHttpRequest의response특성으로부터 로딩됩니다. 이 메서드는 오디오 파일의 조각이 아니라, 오직 완전한 파일에서만 작동합니다.
예제
기본적인 오디오 컨텍스트 선언
js
const audioContext = new AudioContext();
크로스 브라우저를 위한 다른 형태
js
const AudioContext = window.AudioContext || window.webkitAudioContext;
const audioContext = new AudioContext();
const oscillatorNode = audioContext.createOscillator();
const gainNode = audioContext.createGain();
const finish = audioContext.destination;
명세
| Specification |
|---|
| Web Audio API # BaseAudioContext |
브라우저 호환성
BCD tables only load in the browser