AudioNode
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015ë 7ì.
* Some parts of this feature may have varying levels of support.
AudioNode ì¸í°íì´ì¤ë ì¤ëì¤ íë¡ì¸ì± 모ëì ëíë´ê¸° ìí í¬ê´ì ì¸ ì¸í°íì´ì¤ì
ëë¤.
ê·¸ ììë¡ë,
- ì¤ëì¤ ìì¤ (ì: HTML
<audio>ëë<video>ìì,OscillatorNodeë±) - ì¤ëì¤ ëª©ì ì§(destination)
- ì¤ê° íë¡ì¸ì± 모ë (ì:
BiquadFilterNodeëëConvolverNodeê°ì íí°) - 볼륨 ì ì´ (ì:
GainNode)
ì°¸ê³ :
AudioNode ë ì´ë²¤í¸ì ëìì´ ë ì ìì¼ë¯ë¡, AudioNodeë EventTarget ì¸í°íì´ì¤ë¥¼ 구íí©ëë¤.
ì¤ëª
>ì¤ëì¤ ë¼ì°í ê·¸ëí

ê°ê°ì AudioNode ë ì
ë ¥ê³¼ ì¶ë ¥ì ê°ì§ë©°, ì¤ëì¤ ë
¸ëë¤ì ì°ê²°ëì´ íë¡ì¸ì± ê·¸ëí를 íì±í©ëë¤. ì´ ê·¸ëíë AudioContextë´ì í¬í¨ëì´ ìê³ , ê° ì¤ëì¤ ë
¸ëë ì¤ì§ íëì ì¤ëì¤ ì»¨í
ì¤í¸ìë§ ìí ì ììµëë¤.
ìì¤ ë
¸ëë 0ê°ì ì
ë ¥ì ê°ì§ë íë í¹ì ë¤ìì ì¶ë ¥ì ê°ì§ê³ , ì¬ì´ë를 ìì±í기 ìí´ ì¬ì©ë ì ììµëë¤. ë°ë©´ì, 목ì ì§ ë
¸ëë ì¶ë ¥ì ê°ì§ê³ ìì§ ììµëë¤. ëì , ì´ ë
¸ëì 모ë ì¶ë ¥ì ë°ë¡ ì¤í¼ì»¤ (ëë ì¤ëì¤ ì»¨í
ì¤í¸ê° ì¬ì©íë 모ë ì¤ëì¤ ì¶ë ¥ ì¥ì¹) ìì ì¬ìë©ëë¤. ì¶ê°ì ì¼ë¡, ì
ë ¥ê³¼ ì¶ë ¥ì ê°ì§ê³ ìë íë¡ì¸ì± ë
¸ëê° ììµëë¤. ì´ë£¨ì´ì§ë ì íí íë¡ì¸ì±ì íëì AudioNode ìì ë¤ë¥¸ ê²ê¹ì§ ë¤ìíë, ì¼ë°ì ì¼ë¡, ë
¸ëë ìì ì ì
ë ¥ì ì½ê³ , ì¤ëì¤ì ê´ê³ë íë¡ì¸ì±ì ìííê³ , ì¶ë ¥ì¼ë¡ ìë¡ì´ ê°ì ìì±íê±°ë, ì¤ëì¤ê° ì§ëê°ëë¡ í©ëë¤ (ê·¸ ìë¡ AnalyserNode를 ë¤ ì ìëë°, ì´ ë
¸ëììë íë¡ì¸ì±ì ê²°ê³¼ê° ë³ëë¡ ì´ì©ë©ëë¤).
ê·¸ëíì ë
¸ëê° ë§ìì§ìë¡, ì§ì° ìê°ì 길ì´ì§ ê²ì
ëë¤. ì를 ë¤ì´, ë§ì½ ì¤ëì¤ ê·¸ëíê° 500ms ë§í¼ ì§ì°ëë¤ë©´, ìì¤ ë
¸ëê° ì¬ì´ë를 ì¬ìí ë, ì´ ë
¸ëë ì¬ì´ëê° ì¤í¼ì»¤ìì ë¤ë¦´ ëê¹ì§ 0.5ì´ë¥¼ ììí ê²ì
ëë¤ (í¹ì 근본ì ì¸ ì¤ëì¤ ì¥ì¹ì ì§ì° ë문ì ë 길 ìë ììµëë¤). ê·¸ë¬ë¯ë¡, ìí¸ìì©ì íë ì¤ëì¤ê° íìíë¤ë©´, ê°ë¥í í ìê² ê·¸ëí를 ì ì§íê³ , ê·¸ëíì ëì ì¬ì©ìì ìí´ ì ì´ëë ì¤ëì¤ ë
¸ë를 ë°°ì¹íììì¤. ì를 ë¤ìë©´, 볼륨 ë³íê° ì¦ê°ì ì¸ í¨ê³¼ë¥¼ ê°ì§ëë¡ ë³¼ë¥¨ ì ì´(GainNode)ë ë§ì§ë§ ë
¸ëì¬ì¼ í©ëë¤.
ê°ê°ì ì ë ¥ê³¼ ì¶ë ¥ì 주ì´ì§ ìì ì±ëì ê°ì§ê³ ììµëë¤. ì를 ë¤ìë©´, ëª¨ë ¸ ì¤ëì¤ë íëì ì±ëì ê°ì§ê³ ìë ë°ë©´, ì¤í ë ì¤ ì¤ëì¤ë ë ê°ì ì±ëì ê°ì§ê³ ììµëë¤. Web Audio APIë ì구ë ë ì 믹ì¤ë ë¤ì´ë¯¹ì¤ë¥¼ ìíí ê²ì ëë¤. ìì¸í ì¬íì Web Audio ëª ì¸ì를 íì¸í´ ë³´ì¸ì.
모ë ì¤ëì¤ ë ¸ëì 목ë¡ì Web Audio API ííì´ì§ìì ì°¾ìë³¼ ì ììµëë¤.
AudioNode ìì±í기
AudioNode 를 ìì±íë ë°ë ìì±ì를 íµí´ì ìì±íë ê²ê³¼ í©í 리 ë©ìë를 íµí´ ìì±íë ë ê°ì§ ë°©ë²ì´ ììµëë¤.
// ìì±ì
const analyserNode = new AnalyserNode(audioCtx, {
fftSize: 2048,
maxDecibels: -25,
minDecibels: -60,
smoothingTimeConstant: 0.5,
});
// í©í 리 ë©ìë
const analyserNode = audioCtx.createAnalyser();
analyserNode.fftSize = 2048;
analyserNode.maxDecibels = -25;
analyserNode.minDecibels = -60;
analyserNode.smoothingTimeConstant = 0.5;
ìì±ìì í©í 리 ë©ìë ì¤ ì´ë 쪽ì´ë ì¬ì©í ì ìê³ , í¹ì ìì´ì ì¬ì©í ìë ìì§ë§, ìì±ì를 ì¬ì©íë ë°©ë²ì ì´ì ì´ ììµëë¤.
- ìì± ëì¤ì 모ë 매ê°ë³ìë¤ì´ ì¤ì ë ì ìê³ ê°ë³ì ì¼ë¡ ì¤ì ë íìê° ììµëë¤.
- ì¤ëì¤ ë ¸ëì íì í´ëì¤ë¥¼ íììí¬ ì ììµëë¤. ì¤ì íë¡ì¸ì±ì ë¸ë¼ì°ì ì ìí´ ë´ë¶ì ì¼ë¡ ì²ë¦¬ëê³ ë³ê²½ë ì ìë ë°ë©´, ì¤ëì¤ ë ¸ëì ëí¼ë¥¼ ìì±íì¬ ì¬ì©ì ì ì ìì±ê³¼ ë©ìë를 ì ê³µí ì ììµëë¤.
- ì¡°ê¸ ë ëì ì±ë¥ì ë³´ì ëë¤. Chromeê³¼ Firefox 모ëìì, í©í 리 ë©ìëë ìì±ì를 ë´ë¶ì ì¼ë¡ í¸ì¶í©ëë¤.
ê°ëµí ìì¬: Web Audio ëª ì¸ìì 첫ë²ì§¸ ë²ì ì ì¤ì§ í©í 리 ë©ìëë§ì ì ìíìµëë¤. 2013ë 10ìì ëìì¸ ë¦¬ë·° ì´íì, ìì±ìê° í©í 리 ë©ìëì ë¹í´ ìë§ì ì´ì ë¤ì ê°ì§ê³ ìì기 ë문ì ìì±ì를 ì¶ê°íê¸°ë¡ ê²°ì ëììµëë¤. ìì±ìë 2016ë 8ìììë¶í° 10ìê¹ì§ ëª ì¸ìì ì¶ê°ëììµëë¤. í©í 리 ë©ìëë ëª ì¸ìì ê³ì í¬í¨ëê³ í기(deprecated)ëì§ ìììµëë¤.
ìì±
AudioNode.contextì½ê¸° ì ì©-
ì°ê´ë
BaseAudioContext를 ë°ííëë°,BaseAudioContextë ì´ ë ¸ëê° ê´ì¬íê³ ìë íë¡ì¸ì± ê·¸ëí를 ëíë´ë ê°ì²´ì ëë¤. AudioNode.numberOfInputsì½ê¸° ì ì©-
ë ¸ëì ê³µê¸ëë ì ë ¥ì ì를 ë°íí©ëë¤. ìì¤ ë ¸ëë
0ì ê°ìnumberOfInputsì ê°ì§ ë ¸ëë¡ ì ìë©ëë¤. AudioNode.numberOfOutputsì½ê¸° ì ì©-
ë ¸ëìì ëì¤ë ì¶ë ¥ì ì를 ë°íí©ëë¤.
AudioDestinationNodeê°ì 목ì ì§ ë ¸ëë ì´ í¹ì±ì ëí´0ì ê°ì ê°ì§ê³ ììµëë¤. AudioNode.channelCount-
ë ¸ëì 모ë ì ë ¥ì ëí ì°ê²°ì ì ë¯¹ì± ê·¸ë¦¬ê³ ë¤ì´ë¯¹ì±í ë ì¼ë§ë ë§ì ì±ëì ì¬ì©í ì§ ê²°ì í기 ìí´ ì°ì´ë integer를 ë°íí©ëë¤. ì´ ìì±ì ì¬ì©ë²ê³¼ ì ë°í ì ìë
AudioNode.channelCountModeì ê°ì ë¬ë ¤ ììµëë¤. AudioNode.channelCountMode-
ì±ëë¤ì´ ë ¸ëì ì ë ¥ê³¼ ì¶ë ¥ ì¬ì´ìì ë°ëì ì¼ì¹ëì´ì¼ë§ íë ë°©ë²ì 기ì íë ì´ê±°í ê°ì ëíë ëë¤.
AudioNode.channelInterpretation-
ì±ëì ì미를 기ì íë ì´ê±°í ê°ì ëíë ëë¤. ì´ ì¤ëª ì ì´ë»ê² ì¤ëì¤ ì 믹ì±ê³¼ ë¤ì´ë¯¹ì±ì´ ì¼ì´ë ê²ì¸ì§ë¥¼ ì ìí©ëë¤. ê°ë¥í ê°ì
"speakers"ëë"discrete"ì ëë¤.
ë©ìë
ëí EventTarget ì¸í°íì´ì¤ë¡ë¶í° ë©ìë를 구íí©ëë¤.
AudioNode.connect()-
ì´ ë©ìë를 ì¬ì©í´ ë ¸ëì ì¶ë ¥ì´ ë¤ë¥¸ ë ¸ëì ì¤ëì¤ ë°ì´í°ë¡ì¨ í¹ì
AudioParamì ê°ì¼ë¡ì¨ ì ë ¥ëëë¡ ì°ê²°í ì ììµëë¤. AudioNode.disconnect()-
ì´ ë©ìë를 ì¬ì©í´ ì´ë¯¸ ì°ê²°ëì´ ìë ë ¸ëë¡ë¶í° íì¬ ë ¸ëì ì°ê²°ì ëì ì ììµëë¤.
ìì
ì´ ê°ë¨í ì½ëë ëªëª ì¤ëì¤ ë
¸ëì ìì±ê³¼, ì´ë»ê² AudioNode ìì±ê³¼ ë©ìëê° ì¬ì©ëëì§ë¥¼ ë³´ì¬ì¤ëë¤. Web Audio API ëë© íì´ì§ì ì°ê²°ë 모ë ìì ìì ì´ë¬í ì¬ì©ë²ì ìì를 ì°¾ì ì ììµëë¤ (ì: Violent Theremin).
const audioCtx = new AudioContext();
const oscillator = new OscillatorNode(audioCtx);
const gainNode = new GainNode(audioCtx);
oscillator.connect(gainNode).connect(audioCtx.destination);
oscillator.context;
oscillator.numberOfInputs;
oscillator.numberOfOutputs;
oscillator.channelCount;
ëª ì¸ì
| Specification |
|---|
| Web Audio API > # AudioNode > |