ストリームに関する API の廃止について (1.1.0 以降)

1.1.0 より、ストリーム (RTCMediaStream) を操作する主な API を廃止しました。該当の API は削除及び非推奨になりました。 これは libwebrtc の API がトラックを中心した API に切り換わりつつあるためです。 libwebrtc のこれまでの仕様では、トラックはストリームに管理されており、ユーザーは映像の送受信にストリームを利用していました。 例えば、カメラの映像を配信するには getUserMedia() でストリームを取得してから、ストリームを RTCPeerConnectionaddStream() で追加していました。 1.1.0 からは、 getUserMedia() はストリーム ID とトラックのリストを返すようになり、 RTCPeerConnectionaddTrack() でトラックを追加します。 ただし、ストリームそのものはなくなりません。 今後、ストリームに関する操作はストリーム ID を使うようになります。

また、 libwebrtc ではトラックベースの API のみ Unified Plan に対応しています。 ストリームベースの API では Unified Plan を利用できません。 Unified Plan は M72 よりデフォルトの動作になります。

主な変更点

詳細は リリースノート を参照してください。

  • getUserMedia() の戻り値が Promise<RTCUserMedia> に変わり、入力トラックのリスト (映像と音声) とストリーム ID を返すようにしました。

  • RTCPeerConnection.addStream() を廃止しました。今後は addTrack() を使用してください。

  • トラックとその付加情報を持つオブジェクト (RTCRtpSender, RTCRtpReceiver, RTCRtpTransceiver) を追加しました。 これらのオブジェクトからトラックにアクセス可能です。

  • VideoViewstreamValueTag プロパティを廃止しました。今後は描画したい映像トラックを track プロパティにセットしてください。映像トラックをセットすると、関連する音声トラックも同時に再生されます。