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