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

4.1.11. setLocalDescription

4.1.11. setLocalDescription

setLocalDescription メソッドは, 提供されたセッション記述をローカル構成として適用するように PeerConnection に指示します。type フィールドは, 記述をオファー, 暫定アンサー, 最終アンサー, またはロールバックとして処理するかどうかを示します。オファーとアンサーは, 各 SDP 行に存在するさまざまなルールを使用して異なる方法でチェックされます。

この API はローカルメディア状態を変更します。とりわけ, メディアを受信およびデコードするためのローカルリソースを設定します。アプリケーションが 1 つのメディアフォーマットから別の互換性のないフォーマットへの変更をオファーしたいシナリオをうまく処理するために, PeerConnection は現在のローカル記述と保留中のローカル記述の両方の使用を同時にサポートできなければなりません (たとえば, どちらかの記述に存在するコーデックをサポートします)。この二重処理は, PeerConnection が "have-local-offer" 状態に入ったときに開始され, setRemoteDescription が (1) 最終アンサー (この時点で PeerConnection は保留中のローカル記述を完全に採用できます) または (2) ロールバック (現在のローカル記述に戻ります) のいずれかで呼び出されるまで続きます。

この API は候補収集プロセスを間接的に制御します。ローカル記述が提供され, 現在使用されているトランスポートの数がローカル記述で必要なトランスポートの数と一致しない場合, PeerConnection は必要に応じてトランスポートを作成し, 各トランスポートの候補の収集を開始します。利用可能な場合は候補プールからのものを使用します。

(1) setRemoteDescription が以前にオファーで呼び出され, (2) setLocalDescription がアンサー (暫定または最終) で呼び出され, (3) メディア方向が互換性があり, (4) 送信可能なメディアがある場合, これによりメディア送信が開始されます。