MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

현재 번역은 완벽하지 않습니다. 한국어로 문서 번역에 동참해주세요.

AudioContext는 오디오 모듈과 연동시켜 AudioNode를 통해 음원을 그래프화 시킨다. 오디오 컨택스트는 음원정보를 담은 노드를 생성하거나 음원을 실행또는 디코딩 시키는 일을 한다. 당신이 음원을 다룰일이 있다면 우선 AudioContext를 생성해야 관련된 모든 작업을 진행할 수 있다.

AudioContext 이벤트의 타겟이 되므로 EventTarget 인터페이스를 통해 구현되어야 한다.

Properties

AudioContext.currentTime Read only
double형으로 리턴되는 음원을 스케쥴링하기 위한 초단위로 증가하는 시간을 나타낸다. 이는 0부터 시작해서 진행되며 멈추거나 일시정지, 리셋을 할수는 없다.
AudioContext.destination Read only
AudioDestinationNode 은 컨텍스트 상의 모든 음원의 마지막 지점을 리턴한다. It can be thought of as the audio-rendering device.
AudioContext.listener Read only
AudioListener 오브젝트를 리턴하여 3D 사운드를 다루기 위해 사용된다.
AudioContext.sampleRate Read only
컨택스트 상의 모든 노드에서 사용될 샘플rate를 float형으로 매초 리턴한다.  AudioContext 의 sample-rate는 변경되지 않는다.
AudioContext.mozAudioChannelType Read only
Firefox OS의 디바이스에서 재생될 AudioContext상의 음원의 채널을 리턴받는다.

Methods

EventTarget을 부모로 가지는 메서드.

AudioContext.createBuffer()
새롭게 빈 AudioBuffer를 생성해 음원데이터를 넣거나 AudioBufferSourceNode를 통해 재생하는 역할을 한다.
AudioContext.createBufferSource()
AudioBufferSourceNode를 생성하여 AudioBuffer 객체상에 담긴 데이터를 재생하거나 수정할때 사용된다.  AudioBuffer들은 AudioContext.createBuffer을 통해 생성이 되거나 AudioContext.decodeAudioData에 의해 음원트랙이 성공적으로 디코드 되었을 경우에 리턴이 된다.
AudioContext.createMediaElementSource()
HTMLMediaElement와 연관된 MediaElementAudioSourceNode을 생성한다.  이는 <video><audio> 를 재생하거나 음원을 조작할때 사용한다.
AudioContext.createMediaStreamSource()
MediaStream 과 연관된 MediaStreamAudioSourceNode를 생성하여 내 컴퓨터의 마이크나 다른 소스를 통해 발생한 오디오 스트림의 정보를 보여준다.
AudioContext.createMediaStreamDestination()
MediaStream 과 연관된 MediaStreamAudioDestinationNode를 생성하여 로컬파일로 저장된 혹은 다른 컴퓨터에 저장된 오디오 스트림정보를 보여준다.
AudioContext.createScriptProcessor()
ScriptProcessorNode 자바스크립트를 통해 음원의 진행상태에 직접접근에 사용된다.
AudioContext.createAnalyser()
AnalyserNode를 생성하여 오디오의 시간이나 주파수 정보를 알아내어 데이터를 시각화 하는 작업등에 사용을 할 수 있다.
AudioContext.createBiquadFilter()
BiquadFilterNode 를 생성하여 high-pass, low-pass, band-pass등  2차 필터의 정보를 설정 할 수 있다.
AudioContext.createChannelMerger()
ChannelMergerNode 두개의 오디오 스트림 정보를 하나의 오디오 스트림으로 합칠 수 있다.
AudioContext.createChannelSplitter()
ChannelSplitterNode를 통해 오디오 스트림의 각각의 채널정보에 접근 할 때와 스트림을 구분지어 처리할때 사용한다.
AudioContext.createConvolver()
ConvolverNode를 통해 convolution effects를 당신의 오디오 그래프에 적용할 때 사용한다. 예를 들면 reverberation effect 가 있다.
AudioContext.createDelay()
DelayNode를 통해 특정 시간동안 오디오의 입력신호를 딜레이 시킨다. 이 노드는 Web Audio API에서 피드백 루프를 생성할때 유용하다.
AudioContext.createDynamicsCompressor()
DynamicsCompressorNode는 음원의 신호를 암축할때 사용된다.
AudioContext.decodeAudioData()
ArrayBuffer 에 담긴 오디오 파일을 비동기적으로 디코딩 시킬때 사용한다. 이 경우에 일반적으로 ArrayBuffer는 arraybuffer의 responseType을 세팅한 후 XMLHttpRequestresponse를 통해 데이터가 로드된다. 이 메서드는 오직 완벽한 파일에서만 동작을 한다. 파편화된 오디오 파일들에서는 동작하지 않는다.
AudioContext.createGain()
GainNode를 생성하여 오디오 그래프의 전반적인 볼륨을 조절할때 사용한다.
AudioContext.createOscillator()
OscillatorNode를 통해 시간별 음원의 파형을 볼수 있다. 이는 일반적으로 음색(a tone) 을 생성한다.
AudioContext.createPanner()
PannerNode를 통해 입력되는 음원을 3차원으로 공간화 시킬때 사용한다.
AudioContext.createPeriodicWave()
PeriodicWave를 생성하여 OscillatorNode를 통해 출력되는 파형을 확인할수 있다.
AudioContext.createWaveShaper()
WaveShaperNode는 non-linear distortion effects를 적용할 때 사용한다.
AudioContext.createAudioWorker()
AudioWorkerNode는 Web Worker의 스레드와 상호작용을 하며 오디오를 생성, 처리, 분석등의 작업을 직접한다. 이는 2014년 8월 29일에 스펙으로 추가되어 아직 다른 브라우저에는 적용되지 않은 상태이다.

Obsolete methods

AudioContext.createJavaScriptNode()
Creates a JavaScriptNode, used for direct audio processing via JavaScript. This method is obsolete, and has been replaced by AudioContext.createScriptProcessor().
AudioContext.createWaveTable()
Creates a WaveTableNode, used to define a periodic waveform. This method is obsolete, and has been replaced by AudioContext.createPeriodicWave().

Examples

Basic audio context declaration:

var audioCtx = new AudioContext;

Cross browser variant:

var AudioContext = window.AudioContext || window.webkitAudioContext;
var audioCtx = new AudioContext();

var oscillatorNode = audioCtx.createOscillator();
var gainNode = audioCtx.createGain();
var finish = audioCtx.destination;
// etc.

Specifications

Specification Status Comment
Web Audio API
The definition of 'AudioContext' in that specification.
Working Draft  

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 10.0webkit 25.0 (25.0)  Not supported 15.0webkit
22 (unprefixed)
6.0webkit
Feature Android Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support ? 26.0 1.2 ? ? ? 33.0

See also

문서 태그 및 공헌자

태그: 
 이 페이지의 공헌자: maesiltea, yuby
 최종 변경: maesiltea,