Media Capture and Streams API (Media Streams)

Media Capture and Streams API は一般的にMedia Stream APIStream APIと呼ばれるWebRTC (en-US)に関連した API です。この API では、オーディオやビデオデータのストリーム、これらを操作するためのメソッド、データタイプに関連づけられた制約、データを非同期に利用する際の成功と失敗のコールバック、これらの処理を行なっている最中に発生するイベントなどをサポートします。

基本概念

この API は、オーディオまたはビデオに関連づけられたデータの流れを表現するためのMediaStreamオブジェクトの操作を基本としています。例としてGet the video (en-US)(英語)をご覧ください。

MediaStreamは 0 個以上のMediaStreamTrackによって構成されます。MediaStreamTrackは様々なオーディオやビデオのトラックを表現します。それぞれのMediaStreamTrackは、1 つ以上のチャンネルを持ちます。このチャンネルはメディアストリームの最小の単位を表現します。例えば、ステレオのオーディオトラックのleftrightのチャンネルのそれぞれのように、与えられたスピーカーに関連づけられたオーディオ信号です。

MediaStreamオブジェクトは、1 つの入力と 1 つの出力を持ちます。MediaStreamオブジェクトは、ローカルで呼び出されるgetUserMedia()によって生成され、ユーザーのカメラやマイクの 1 つを入力ソースとして持ちます。ローカルでないMediaStreamは、<video><audio>などのメディア要素や、WebRTC RTCPeerConnection API によって取得できるネットワーク越しに生成されたストリーム、Web Audio API (en-US) MediaStreamAudioSourceNode (en-US)によって作成されたストリームとして表現されます。MediaStreamオブジェクトの出力はコンシューマ(consumer)に接続されます。出力として<audio><video>などのメディア要素、WebRTC RTCPeerConnection API、Web Audio API (en-US) MediaStreamAudioDestinationNode (en-US)が使用できます。

リファレンス

ガイドとチュートリアル

能力、制約、そして設定

歴史的に、Web API と密接に連携するウェブ用のスクリプトを作成することには、よく知られた課題がありました。 多くの場合、コードは、API が存在するかどうか、存在する場合は、それを実行しているuser agentの制限を知る必要があります。 これを理解するのは難しい場合が多く、通常、実行しているuser agent(またはブラウザー)とそのバージョンの組み合わせを調べ、特定のオブジェクトが存在するかどうかを確認したり、さまざまなものが機能するかどうかを確認したり、どのエラーが発生したかを判断したりする必要がありました。 その結果、非常に脆弱なコードが大量に発生するか、このような問題を解決するライブラリに依存したり、polyfillを実装して実装の穴にパッチを当てたりしました。

ブラウザ互換性

BCD tables only load in the browser

関連項目