メインコンテンツまでスキップ

3.4.1. RtpTransceivers

3.4.1. RtpTransceivers

RtpTransceivers により, アプリケーションは 1 つの "m=" セクションに関連付けられた RTP メディアを制御できます。各 RtpTransceiver には RtpSender と RtpReceiver があり, アプリケーションはこれらを使用して RTP メディアの送信と受信を制御できます。アプリケーションは, RtpTransceiver を直接変更することもできます (たとえば, 停止することによって)。

RtpTransceivers は通常 "m=" セクションと 1:1 のマッピングを持ちますが, RtpTransceivers が作成されたがまだ "m=" セクションに関連付けられていない場合, または RtpTransceivers が停止され "m=" セクションから関連付けが解除された場合, "m=" セクションよりも多くの RtpTransceivers が存在する可能性があります。RtpTransceiver のメディア識別 (mid) プロパティが非 null の場合, "m=" セクションに関連付けられていると言われます; それ以外の場合は, 関連付けが解除されていると言われます。関連付けられた "m=" セクションは, offer を作成するとき, またはリモート offer を適用するときに形成される, transceivers と "m=" セクションインデックス間のマッピングを使用して決定されます。

RtpTransceiver は複数の "m=" セクションに関連付けられることはなく, セッション記述が適用されると, "m=" セクションは常に正確に 1 つの RtpTransceiver に関連付けられます。ただし, 以下の第 5.2.2 節で説明するように, "m=" セクションが拒否された特定のケースでは, その "m=" セクションは "リサイクル" され, 新しい MID 値を持つ新しい RtpTransceiver に関連付けられます。

RtpTransceivers は, アプリケーションによって明示的に作成することも, 新しい "m=" セクションを追加する offer を使用して setRemoteDescription を呼び出すことで暗黙的に作成することもできます。