6

我们正在公司里摆弄WebRTC。我偶然发现了一件奇怪的事情,我不确定这是 WebRTC 的设计还是我们这边的实施错误。

我们目前有一个简单的 WebApp,它显示在线联系人的联系人列表。现在可以简单地呼叫联系人列表中的任何用户。

呼叫者和被呼叫者可以自由选择共享网络摄像头和/或音频。然后由 GetUserMedia() (MediaConstraints) 尊重。

现在奇怪的是:客户端(Chrome 65)只有在呼叫者开始时启用视频时才协商视频呼叫。如果呼叫者没有提供他的网络摄像头,我们不会让被呼叫者网络摄像头流回(如果他允许的话)。

但是,当呼叫者在启用网络摄像头的情况下发起呼叫并且被呼叫者决定不显示他时,一切都按预期工作。(只有来电者有直播)。

如果双方同意显示视频,我们将获得双向视频流。

如果这是故意的,有人有一些内部知识吗?是否可以在不显示自己的网络摄像头的情况下给某人打电话,但后来看到被呼叫者的网络摄像头?

在此先感谢,斯文

4

2 回答 2

6

尝试pc.createOffer({offerToReceiveVideo: true})而不是在没有这些限制的情况下调用它。

于 2018-04-24T13:28:38.020 回答
0

菲利普的回答效果很好。但是,到目前为止,建议的选项已标记为旧版,不应再使用。执行此操作的新方法是在创建报价之前将视频收发器添加到连接:

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

于 2021-07-17T00:11:36.320 回答