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 と同一ではありません。RTCRtpSender
とRTCRtpReceiver
にストリーム ID のリストを保持するstreamIds
プロパティを追加しています。
RTCPeerConnection
¶
コンストラクタはメディア制約
RTCMediaConstraints
を引数に受け取ります。addTrack()
の引数が異なります。 Web API ではストリームのリストを引数に指定しますが、本ライブラリではストリーム ID のリストを指定します。RTCConfiguration
が持つプロパティは Web API と異なります。
映像の描画¶
本ライブラリでは映像を描画する専用のビュー
RTCVideoView
を用意しています。
RTCDataChannel
¶
binaryType
はarraybuffer
のみ対応しています。blob
には対応していません。RTCDataChannel.send()
でBlob
形式のものを送信することはできません。string
,ArrayBuffer
,ArrayBufferView
のみ対応しています。onerror
に相当するコールバックはありません。onmessage
のコールバックのプロパティは Web API と異なります。