============================= 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`` であり、ストリームを結果とする Promise です。 本ライブラリの戻り値の型は ``Promise`` であり、 ``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 と異なります。