我们在公司中与Webrtc一起摆弄。我偶然发现了一件奇怪的事情,我不确定这是通过WEBRTC中的设计或我们这边的Impartaiton错误。
我们目前有一个简单的WebApp,它显示在线联系人的联系列表。现在,可以简单地调用联系人列表中的任何用户。
呼叫者和Callee可以自由选择共享网络摄像头和/或音频。然后,getusermedia(((MediaConstraints(尊重它。
现在很奇怪的是:客户(Chrome 65(仅在呼叫者启动视频启动时才协商视频通话。如果呼叫者不提供他的网络摄像头,我们不会将Callee网络摄像头流回去(如果他允许的话(。
但是,当呼叫者用启用其网络摄像头启动呼叫和卡莉(Callee(时,比决定不显示他的电话时,一切都按预期工作。(只有呼叫者有实时流(。
如果双方都同意展示视频,我们将获得bideractional视频流。
是否有人有一些内部知识,如果这是这样的?如果不显示您自己的网络摄像头,可以打电话给某人,而是在看到Callees网络摄像头时?
预先感谢Sven
尝试pc.createOffer({offerToReceiveVideo: true})
而不是无需这些约束的情况。
菲利普的答案非常有效。但是,到现在为止,提出的选项已标记为遗产,不应再使用。这样做的新方法是在创建报价之前向连接添加视频收发器:
connection.addTransceiver('video');
// this step seems to be optional:
connection.getTransceivers().forEach(t => t.direction = 'recvonly');
connection.createOffer();
信用https://niccoloterreri.com/webrtc-with-transceivers。有关可选步骤,请参见https://developer.mozilla.org/en-us/docs/web/api/rtcrtptransceiver/direction.