diff options
| author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
|---|---|---|
| committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
| commit | 33058f2b292b3a581333bdfb21b8f671898c5060 (patch) | |
| tree | 51c3e392513ec574331b2d3f85c394445ea803c6 /files/ja/web/api/audiocontext/createmediastreamdestination | |
| parent | 8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff) | |
| download | translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2 translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip | |
initial commit
Diffstat (limited to 'files/ja/web/api/audiocontext/createmediastreamdestination')
| -rw-r--r-- | files/ja/web/api/audiocontext/createmediastreamdestination/index.html | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/files/ja/web/api/audiocontext/createmediastreamdestination/index.html b/files/ja/web/api/audiocontext/createmediastreamdestination/index.html new file mode 100644 index 0000000000..b3d36b6b52 --- /dev/null +++ b/files/ja/web/api/audiocontext/createmediastreamdestination/index.html @@ -0,0 +1,122 @@ +--- +title: AudioContext.createMediaStreamDestination() +slug: Web/API/AudioContext/createMediaStreamDestination +tags: + - API + - AudioContext + - Method + - Reference + - Référence(2) + - Web Audio API + - createMediaStreamDestination +translation_of: Web/API/AudioContext/createMediaStreamDestination +--- +<p>{{ APIRef("Web Audio API") }}</p> + +<div> +<p>{{ domxref("AudioContext") }} インターフェイスの <code>createMediaStreamDestination()</code> メソッドは、<a href="/ja/docs/WebRTC">WebRTC</a> {{domxref("MediaStream")}} と関連付けられた {{domxref("MediaStreamAudioDestinationNode")}} オブジェクトを生成します。このMediaStreamはローカルファイルに格納されたり他のコンピュータに送信されたりする音声ストリームを表します。</p> +</div> + +<p>{{domxref("MediaStream")}} はノードが生成されたときに作成され、{{domxref("MediaStreamAudioDestinationNode")}}の <code>stream</code> プロパティを通じてアクセスすることができます。このストリームは {{domxref("navigator.getUserMedia") }} で得られた <code>MediaStream</code> と同じような使い方ができます。例えば、<code>RTCPeerConnection</code> インターフェイスの <code>addStream()</code> メソッドでリモートの端末に送ることができます。</p> + +<p>詳細は {{domxref("MediaStreamAudioDestinationNode")}} のページを参照してください。</p> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="brush: js">var audioCtx = new AudioContext(); +var destination = audioCtx.createMediaStreamDestination();</pre> + +<h3 id="Returns" name="Returns">戻り値</h3> + +<p>{{domxref("MediaStreamAudioDestinationNode")}}</p> + +<h2 id="Example" name="Example">例</h2> + +<p>次の簡単な例では、{{domxref("MediaStreamAudioDestinationNode")}}と{{ domxref("OscillatorNode") }}と{{ domxref("MediaRecorder") }} (そのため現時点では、このサンプルは Firefox と Chrome でしか動作しません) を作成します。<code>MediaRecorder</code> は <code>MediaStreamDestinationNode</code> からの情報を記録するように設定されています。</p> + +<p>ボタンをクリックするとオシレーター(振動子)が開始し、<code>MediaRecorder</code> も開始します。再びボタンを押して止めると、オシレーターと <code>MediaRecorder</code> の両方が停止します。<code>MediaRecorder</code> が停止すると <code>dataavailable</code> イベントが発火され、イベントデータが <code>chunks</code>配列にプッシュされます。その後、<code>stop</code> イベントが発火すると、新しい <code>blob</code> が opus タイプで作られます—そこには <code>chunks</code>配列のデータが書き込まれていて、その blob の URL を指す新しいウィンドウ(タブ)が開きます。</p> + +<p>そこで opus ファイルの再生と保存ができます。</p> + +<pre class="brush: html;highlight[17]"><!DOCTYPE html> +<html> + <head> + <title>createMediaStreamDestination() demo</title> + </head> + <body> + <h1>createMediaStreamDestination() demo</h1> + + <p>Encoding a pure sine wave to an Opus file </p> + <button>Make sine wave</button> + <audio controls></audio> + <script> + var b = document.querySelector("button"); + var clicked = false; + var chunks = []; + var ac = new AudioContext(); + var osc = ac.createOscillator(); + var dest = ac.createMediaStreamDestination(); + var mediaRecorder = new MediaRecorder(dest.stream); + osc.connect(dest); + + b.addEventListener("click", function(e) { + if (!clicked) { + mediaRecorder.start(); + osc.start(0); + e.target.innerHTML = "Stop recording"; + clicked = true; + } else { + mediaRecorder.stop(); + osc.stop(0); + e.target.disabled = true; + } + }); + + mediaRecorder.ondataavailable = function(evt) { + // それぞれの chunk(blobs)を配列に入れる + chunks.push(evt.data); + }; + + mediaRecorder.onstop = function(evt) { + // blob を作成し開く + var blob = new Blob(chunks, { 'type' : 'audio/ogg; codecs=opus' }); + document.querySelector("audio").src = URL.createObjectURL(blob); + }; + </script> + </body> +</html></pre> + +<div class="note"> +<p><strong>注:</strong> Github で<a href="https://mdn.github.io/webaudio-examples/create-media-stream-destination/index.html">実際に動作する例を閲覧</a>したり、<a href="https://github.com/mdn/webaudio-examples/blob/master/create-media-stream-destination/index.html">ソースコードを読む</a>ことができます。</p> +</div> + +<h2 id="Specifications" name="Specifications">仕様</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">仕様書</th> + <th scope="col">策定状況</th> + <th scope="col">コメント</th> + </tr> + <tr> + <td>{{SpecName('Web Audio API', '#dom-audiocontext-createmediastreamdestination', 'createMediaStreamDestination()')}}</td> + <td>{{Spec2('Web Audio API')}}</td> + <td></td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザー互換性</h2> + +<div> + + +<p>{{Compat("api.AudioContext.createMediaStreamDestination")}}</p> +</div> + +<h2 id="See_also" name="See_also">参考</h2> + +<ul> + <li><a href="/ja/docs/Web_Audio_API/Using_Web_Audio_API">Using the Web Audio API</a></li> +</ul> |
