【发布时间】:2020-11-26 06:37:10
【问题描述】:
我正在尝试将使用 WebRTC 的音频/视频聊天功能添加到现有的文本聊天应用程序中。聊天室参与者已经在聊天,但是当他们决定需要音频/视频时,他们按下按钮开始音频/视频。无论哪个客户端按下按钮,我都会调用myPeerConnection.createOffer().then(function(offer){setLocalDescription(offer)},然后将offer(JSON.stringified)与客户端ID 一起发送到服务器。在X 秒后,我禁用加入音频/视频聊天的按钮,向服务器发送通知以将所有offers 分发给参与者。此时,所有愿意加入音频/视频聊天的客户端都拥有来自所有剩余对等方的一整套 SDP。
我的问题是,我需要为每个客户的每个报价发送答案吗?我的理解是 SDP 描述了客户端处理音频/视频的能力。我可以使用其他人提供的 SDP 给setRemoteDescription(SDP) 吗?我遇到的所有示例、教程、问题和帖子都使用了 offer/answer 的范式,并且没有一个人在谈论 offer 和 answer 之间的区别。任何信息或指针表示赞赏。
这是从我的代码简化的jsFiddle 代码段。请查看控制台输出,它只显示媒体功能。所有可能区分 SDP 的 ICE 和网络信息都来自交换此提议 SDP 和答案之后,因此这还不是通过信令通道完成的此提议(和答案)交换的一部分。
PS:严格来说,我的场景没有任何启动通道的发起者或发送者。所有参与者都是平等的。也没有办法确定或排序它们。当功能和网络信息正确交换后,它们就会开始音频/视频聊天。
【问题讨论】:
标签: javascript video-streaming webrtc p2p sdp