BaseAudioContext

Web Audio APIBaseAudioContext 인터페이스는 AudioContextOfflineAudioContext에 의해 표현되는 온라인과 오프라인 오디오 프로세싱 그래프에 대한 기본 정의로 작동합니다. BaseAudioContext는 직접적으로 사용될 수 없습니다. 대신 위에서 언급한 두 상속 인터페이스를 통해 BaseAudioContext의 기능을 사용할 수 있습니다.

BaseAudioContext는 이벤트의 타겟이 될 수 있는데, 따라서 이것은 EventTarget 인터페이스를 구현합니다.

EventTarget BaseAudioContext

속성

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는 보통 arraybufferresponseType을 설정한 후 XMLHttpRequestresponse 특성으로부터 로딩됩니다. 이 메서드는 오디오 파일의 조각이 아니라, 오직 완전한 파일에서만 작동합니다.

예제

기본적인 오디오 컨텍스트 선언

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

같이 보기