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