diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:17 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:17 -0500 |
commit | da78a9e329e272dedb2400b79a3bdeebff387d47 (patch) | |
tree | e6ef8aa7c43556f55ddfe031a01cf0a8fa271bfe /files/ko/web/api/audiobuffersourcenode/index.html | |
parent | 1109132f09d75da9a28b649c7677bb6ce07c40c0 (diff) | |
download | translated-content-da78a9e329e272dedb2400b79a3bdeebff387d47.tar.gz translated-content-da78a9e329e272dedb2400b79a3bdeebff387d47.tar.bz2 translated-content-da78a9e329e272dedb2400b79a3bdeebff387d47.zip |
initial commit
Diffstat (limited to 'files/ko/web/api/audiobuffersourcenode/index.html')
-rw-r--r-- | files/ko/web/api/audiobuffersourcenode/index.html | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/files/ko/web/api/audiobuffersourcenode/index.html b/files/ko/web/api/audiobuffersourcenode/index.html new file mode 100644 index 0000000000..84d15b5d2d --- /dev/null +++ b/files/ko/web/api/audiobuffersourcenode/index.html @@ -0,0 +1,146 @@ +--- +title: AudioBufferSourceNode +slug: Web/API/AudioBufferSourceNode +translation_of: Web/API/AudioBufferSourceNode +--- +<div>{{APIRef("Web Audio API")}}</div> + +<p><span class="seoSummary"><strong><code>AudioBufferSourceNode</code></strong> 의 오디오 소스는 in-memory 의 {{domxref("AudioNode")}} 상에 저장된 데이터로 구성되어있다. 이는 오디오 소스 그 자체처럼 동작을 한다.</span></p> + +<p><code>AudioBufferSourceNode</code> 는 입력정보를 가지지 않고 정확히 하나의 출력정보를 가진다. 출력상의 여러 채널은 <code>AudioBufferSourceNode.buffer</code> 프로퍼티로로 동작할 {{domxref("AudioBuffer")}} 의 채널의 수와 일치한다. 만약에 <code>AudioBufferSourceNode.buffer</code>가 <code>null</code>이라면 출력은 오직 무음으로 출력이된다. {{domxref("AudioBufferSourceNode")}}는 오직 한번만 재생이 된다. 즉 <code>AudioBufferSourceNode.start()</code>가 한번만 호출될수 있다. 만약에 한번더 재생하기를 원한다면 또 다른 <code>AudioBufferSourceNode</code>를 생성해야 한다. 이 노드는 매우 간편히 생성가능하다. <code>AudioBuffer</code>는 다른 곳에서 접근해 재생이 가능하다. <code>AudioBufferSourceNode</code>s는 "fire and forget(쓰고 잊자)" 처럼 한번 쓰고 나면 해당노드의 모든 참조들이 없어지고 자동적으로 가비지 콜렉터로 가게된다.</p> + +<p>여러번 실행을 하면 <code>AudioBufferSourceNode.stop()</code>을 통해 정지가 가능하다. 가장 최근의 실행된것이 이전의 것으로 대체가 되어 <code>AudioBufferSourceNode</code>버퍼의 마지막에 도착하지 않은 상태가 된다.</p> + +<p><br> + <img alt="The AudioBufferSourceNode takes the content of an AudioBuffer and m" src="https://mdn.mozillademos.org/files/9717/WebAudioAudioBufferSourceNode.png" style="display: block; height: 193px; margin: 0px auto; width: 365px;"></p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Number of inputs</th> + <td><code>0</code></td> + </tr> + <tr> + <th scope="row">Number of outputs</th> + <td><code>1</code></td> + </tr> + <tr> + <th scope="row">Channel count</th> + <td>defined by the associated {{domxref("AudioBuffer")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Properties">Properties</h2> + +<p><em> </em><em>{{domxref("AudioNode")}}</em> 를 부모로 가지는 프로퍼티.</p> + +<dl> + <dt>{{domxref("AudioBufferSourceNode.buffer")}}</dt> + <dd>{{domxref("AudioBuffer")}} 의 음원이 재생이 되거나 값이 NULL 이라면 채널하나을 무음으로 정의한다.</dd> + <dt>{{domxref("AudioBufferSourceNode.playbackRate")}} {{readOnlyinline}}</dt> + <dd>{{domxref("AudioParam")}}에는 두개의 파라메터가 있는 데 그중의 하나인 <a href="/ko/docs/Web/API/AudioParam#a-rate">a-rate</a>을 재생이될 정보의 속도요소로 정의 한다. 출력에 수정된 음의 보정이 있지않으므로 이 는 샘플의 음을 변경하는데 사용이 가능하다.</dd> + <dt>{{domxref("AudioBufferSourceNode.loop")}}</dt> + <dd>Boolean값으로 음원이 재생되어 {{domxref("AudioBuffer")}}의 끝에 다달했음을 알리는 값이다. false를 기본값으로 가진다.</dd> + <dt>{{domxref("AudioBufferSourceNode.loopStart")}}</dt> + <dd>double값으로 {{domxref("AudioBuffer")}}가 재시작이 되는 경우 반드시 발생한다. 기본값은 0이다.</dd> + <dt>{{domxref("AudioBufferSourceNode.loopEnd")}}</dt> + <dd>double값으로 {{domxref("AudioBuffer")}}가 다시 재생이 되는 경우 재생을 멈춰야 한다(그리고 결국에는 다시 시작한다). 기본값은 0이다.</dd> +</dl> + +<h3 id="Event_handlers">Event handlers</h3> + +<dl> + <dt>{{domxref("AudioBufferSourceNode.onended")}}</dt> + <dd>{{domxref("EventHandler")}}로 {{event("ended_(Web_Audio)", "ended")}}이벤트와 연관된 콜백함수를 가진다.</dd> +</dl> + +<h2 id="Methods">Methods</h2> + +<p><em>{{domxref("AudioNode")}}</em> 를 부모로 가지는 매서드.</p> + +<dl> + <dt>{{domxref("AudioBufferSourceNode.start()")}}</dt> + <dd>음원이 재생되는 시작되는 시점.</dd> + <dt>{{domxref("AudioBufferSourceNode.stop()")}}</dt> + <dd>음원이 재생되는 끝나는 시점.</dd> +</dl> + +<h2 id="Examples">Examples</h2> + +<p>이 예제는 two-second buffer를 생성하여 화이트 노이즈로 채워 이를 <code>AudioBufferSourceNode을 통해 재생한다.</code></p> + +<div class="note"> +<p><strong>Note</strong>: You can also <a class="external external-icon" href="http://mdn.github.io/audio-buffer/">run the code live</a>, or <a class="external external-icon" href="https://github.com/mdn/audio-buffer">view the source</a>.</p> +</div> + +<pre class="brush: js">var audioCtx = new (window.AudioContext || window.webkitAudioContext)(); +var button = document.querySelector('button'); +var pre = document.querySelector('pre'); +var myScript = document.querySelector('script'); + +pre.innerHTML = myScript.innerHTML; + +// Stereo +var channels = 2; +// Create an empty two-second stereo buffer at the +// sample rate of the AudioContext +var frameCount = audioCtx.sampleRate * 2.0; + +var myArrayBuffer = audioCtx.createBuffer(2, frameCount, audioCtx.sampleRate); + +button.onclick = function() { + // Fill the buffer with white noise; + //just random values between -1.0 and 1.0 + for (var channel = 0; channel < channels; channel++) { + // This gives us the actual ArrayBuffer that contains the data + var nowBuffering = myArrayBuffer.getChannelData(channel); + for (var i = 0; i < frameCount; i++) { + // Math.random() is in [0; 1.0] + // audio needs to be in [-1.0; 1.0] + nowBuffering[i] = Math.random() * 2 - 1; + } + } + + // Get an AudioBufferSourceNode. + // This is the AudioNode to use when we want to play an AudioBuffer + var source = audioCtx.createBufferSource(); + // set the buffer in the AudioBufferSourceNode + source.buffer = myArrayBuffer; + // connect the AudioBufferSourceNode to the + // destination so we can hear the sound + source.connect(audioCtx.destination); + // start the source playing + source.start(); +}</pre> + +<div class="note"> +<p><strong>Note</strong>: For a <code>decodeAudioData</code> example, see the {{domxref("AudioContext.decodeAudioData")}} page.</p> +</div> + +<h2 id="Specification">Specification</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + <tr> + <td>{{SpecName('Web Audio API', '#the-audiobuffersourcenode-interface', 'AudioBufferSourceNode')}}</td> + <td>{{Spec2('Web Audio API')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<div>{{Compat("api.AudioBufferSourceNode")}}</div> + +<h2 id="See_also">See also</h2> + +<ul> + <li><a href="/en-US/docs/Web/API/Web_Audio_API/Using_Web_Audio_API">Using the Web Audio API</a></li> +</ul> |