RTCPeerConnection的ontrack事件触发时机及event.streams[0]归属咨询
RTCPeerConnection 相关疑问解答
一、ontrack 事件的触发时机分析
针对你列出的三个场景,逐个说明:
- 检测到本地媒体流(摄像头或麦克风权限已允许)时:不会触发。ontrack 事件专门用于监听来自远端的媒体轨道,本地媒体流通过
getUserMedia获取后需自行处理,不会触发该回调。 - 使用
setLocalDescription设置本地 SDP 的 offer 时:不会触发。这个操作只是本地生成并确认会话描述,还未和远端建立媒体传输链路,不会触发接收轨道的事件。 - 接收对方的 answer 并通过
setRemoteDescription注册为远程 SDP 时:会触发。当远端媒体轨道开始向本地传输数据,且本地完成远程 SDP 设置后,ontrack 事件就会被触发,此时可获取到远端的媒体轨道。
二、event.streams[0] 获取的流归属
通过 ontrack 事件的 event.streams[0] 获取的是对方的媒体流。ontrack 事件的触发逻辑是:当你的 RTCPeerConnection 成功接收到来自远端对等方的媒体轨道时才会抛出该事件,因此关联的流必然属于远端。
内容的提问来源于stack exchange,提问作者신주영
相关产品推荐
相关产品推荐

