ストリームに関する API の廃止について (1.1.0 以降)¶
1.1.0 より、ストリーム (RTCMediaStream
) を操作する主な API を廃止しました。該当の API は削除及び非推奨になりました。
これは libwebrtc の API がトラックを中心した API に切り換わりつつあるためです。
libwebrtc のこれまでの仕様では、トラックはストリームに管理されており、ユーザーは映像の送受信にストリームを利用していました。
例えば、カメラの映像を配信するには getUserMedia()
でストリームを取得してから、ストリームを RTCPeerConnection
に addStream()
で追加していました。
1.1.0 からは、 getUserMedia()
はストリーム ID とトラックのリストを返すようになり、 RTCPeerConnection
に addTrack()
でトラックを追加します。
ただし、ストリームそのものはなくなりません。
今後、ストリームに関する操作はストリーム ID を使うようになります。
また、 libwebrtc ではトラックベースの API のみ Unified Plan に対応しています。 ストリームベースの API では Unified Plan を利用できません。 Unified Plan は M72 よりデフォルトの動作になります。
主な変更点¶
詳細は リリースノート を参照してください。
getUserMedia()
の戻り値がPromise<RTCUserMedia>
に変わり、入力トラックのリスト (映像と音声) とストリーム ID を返すようにしました。RTCPeerConnection.addStream()
を廃止しました。今後はaddTrack()
を使用してください。トラックとその付加情報を持つオブジェクト (
RTCRtpSender
,RTCRtpReceiver
,RTCRtpTransceiver
) を追加しました。 これらのオブジェクトからトラックにアクセス可能です。VideoView
のstreamValueTag
プロパティを廃止しました。今後は描画したい映像トラックをtrack
プロパティにセットしてください。映像トラックをセットすると、関連する音声トラックも同時に再生されます。