--- title: Media Capture and Streams API (Media Streams) slug: Web/API/Media_Streams_API tags: - API - Advanced - Audio - Guide - Introduction - Media - Media Capture and Streams API - Media Streams API - NeedsContent - Video translation_of: Web/API/Media_Streams_API ---
Media Capture and Streams APIは一般的にMedia Stream APIやStream APIと呼ばれるWebRTCに関連したAPIです。このAPIでは、オーディオやビデオデータのストリーム、これらを操作するためのメソッド、データタイプに関連づけられた制約、データを非同期に利用する際の成功と失敗のコールバック、これらの処理を行なっている最中に発生するイベントなどをサポートします。
このAPIは、オーディオまたはビデオに関連づけられたデータの流れを表現するための{{domxref("MediaStream")}}オブジェクトの操作を基本としています。例としてGet the video(英語)をご覧ください。
MediaStream
は0個以上の{{domxref("MediaStreamTrack")}}によって構成されます。MediaStreamTrack
は様々なオーディオやビデオのトラックを表現します。それぞれのMediaStreamTrack
は、1つ以上のチャンネルを持ちます。このチャンネルはメディアストリームの最小の単位を表現します。例えば、ステレオのオーディオトラックのleftとrightのチャンネルのそれぞれのように、与えられたスピーカーに関連づけられたオーディオ信号です。
MediaStream
オブジェクトは、1つの入力と1つの出力を持ちます。MediaStream
オブジェクトは、ローカルで呼び出される{{domxref("MediaDevices.getUserMedia", "getUserMedia()")}}によって生成され、ユーザーのカメラやマイクの1つを入力ソースとして持ちます。ローカルでないMediaStream
は、{{HTMLElement("video")}}や{{HTMLElement("audio")}}などのメディア要素や、WebRTC {{domxref("RTCPeerConnection")}} APIによって取得できるネットワーク越しに生成されたストリーム、Web Audio API {{domxref("MediaStreamAudioSourceNode")}}によって作成されたストリームとして表現されます。MediaStream
オブジェクトの出力はコンシューマ(consumer)に接続されます。出力として{{HTMLElement("audio")}}や{{HTMLElement("video")}}などのメディア要素、WebRTC {{domxref("RTCPeerConnection")}} API、Web Audio API {{domxref("MediaStreamAudioDestinationNode")}}が使用できます。
{{LandingPageListSubpages}}
{{ CompatibilityTable }}
Feature | Chrome | Firefox (Gecko) | Edge | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Stream API | 21{{ property_prefix("webkit") }} | Nightly 18{{ property_prefix("moz") }} | {{ CompatVersionUnknown }} | {{ CompatUnknown }} | 12 | 11 |
Feature | Android | Edge | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Stream API | {{ CompatNo }} | {{CompatVersionUnknown}} | {{ CompatUnknown }} | {{ CompatUnknown }} | {{ CompatNo }} | 11.2 |
現在、ChromeとOpera、Firefox Nightly 18でカメラへアクセスするためにWebRTCを用いることができます。Firefox NightlyでWebRTCを有効にするには、次の設定でフラグを有効にする必要があります。
getUserMedia()
を用いたデモとチュートリアル