Web API (ブラウザ) との相違点

本ライブラリの API と、各 Web ブラウザが実装している Web API との主な相違点を次に示します。 本ライブラリが利用する WebRTC ネイティブライブラリの API は Web API と同一ではありません。 できるだけ Web API に近づけていますが、ネイティブ API では実装が難しい API や本ライブラリの都合で同一にできない API があります。

全般

  • 本ライブラリの API のうち、クラスを含む型と定数の名前のすべてに接頭辞 RTC がつきます。 Web API に接頭辞を追加した主な API を次に示します。

    • MediaStream -> RTCMediaStream

    • MediaStreamTrack -> MediaStreamTrack

カメラとマイク

  • getUserMedia() の戻り値が異なります。 Web API での戻り値は Promise<MediaStream> であり、ストリームを結果とする Promise です。 本ライブラリの戻り値の型は Promise<RTCUserMedia> であり、 RTCUserMedia はトラックとストリーム ID のリストを持ちます。 RTCUserMedia は本ライブラリ独自の API です。

  • カメラとマイクの動作を停止する API stopUserMedia() を追加しています。

ストリームとトラック

  • 本ライブラリ (1.1.0 以降) では基本的にストリーム RTCMediaStream を操作しません。 ストリームに関する API は、一部を除いてストリーム ID を利用します。

  • MediaStreamTrack.applyConstraints() に相当する API はありません。

  • RTCMediaStreamTrack が映像トラックを表す場合、 aspectRatio プロパティでアスペクト比の指定が可能です。

  • getUserMedia() に渡す制約 RTCMediaStreamConstraints の内容は Web API と同一ではありません。

  • RTCRtpSenderRTCRtpReceiver にストリーム ID のリストを保持する streamIds プロパティを追加しています。

RTCPeerConnection

  • コンストラクタはメディア制約 RTCMediaConstraints を引数に受け取ります。

  • addTrack() の引数が異なります。 Web API ではストリームのリストを引数に指定しますが、本ライブラリではストリーム ID のリストを指定します。

  • RTCConfiguration が持つプロパティは Web API と異なります。

映像の描画

  • 本ライブラリでは映像を描画する専用のビュー RTCVideoView を用意しています。

RTCDataChannel

  • binaryTypearraybuffer のみ対応しています。 blob には対応していません。

  • RTCDataChannel.send()Blob 形式のものを送信することはできません。 string, ArrayBuffer, ArrayBufferView のみ対応しています。

  • onerror に相当するコールバックはありません。

  • onmessage のコールバックのプロパティは Web API と異なります。