我正在尝试更改rtcpMuxPolicy以及bundlePolicy,但似乎无法更改

这是我的代码:

尝试1:

var servers = {
    'iceServers': [{
        'urls': 'stun-url..'
    }, {
        'urls': 'stun-url-2..'
    }, {
        'urls': 'turn-url..',
        'credential': 'psw',
        'username': 'user'
    }],
    peerIdentity: [{bundlePolicy: 'max-bundle', rtcpMuxPolicy: 'negotiate'}]//added this line
};

var pc;
var sendChannel;

navigator.getUserMedia = (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia);

pc = new RTCPeerConnection(servers);


尝试2:

var servers = {
        'iceServers': [{
            'urls': 'stun-url..'
        }, {
            'urls': 'stun-url-2..'
        }, {
            'urls': 'turn-url..',
            'credential': 'psw',
            'username': 'user'
        }]
    };

    var pc;
    var sendChannel;

    navigator.getUserMedia = (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia);

    pc = new RTCPeerConnection(servers);
    pc.setConfiguration([{bundlePolicy: 'max-bundle', rtcpMuxPolicy: 'negotiate'}]);


在这两个示例中,我仍然看到默认值:

pc.getConfiguration()

bundlePolicy: "balanced"
rtcpMuxPolicy: "require"


而且我只能注意到一个更改,即iceServers数组为空,但是
bundlePolicyrtcpMuxPolicy仍然是默认值。

我有可以与Android应用程序通信的WebRtc Web解决方案,并且在流式传输视频时一切正常,在添加dataChannel时出现了问题,即

sendChannel = pc.createDataChannel('sendDataChannel');


在我的网络解决方案中添加以上行后,Android会引发错误消息:


  setSDP错误:无法设置远程商品sdp:会话错误代码:
  ERROR_CONTENT。会话错误说明:无法设置RTCP多路复用器
  过滤..

最佳答案

首先,删除peerIdentity: [{}]。只有iceServers需要一个数组。语法为:

const pc = new RTCPeerConnection({
  iceServers: [{urls: 'stun-url..'}, {urls: 'stun-url-2..'}],
  bundlePolicy: 'max-bundle', // add this line
  rtcpMuxPolicy: 'negotiate'  // and this one
});


pc.setConfiguration({bundlePolicy: 'max-bundle', rtcpMuxPolicy: 'negotiate'});


其次,请注意,即使some browsers支持rtcpMuxPolicy,在specification'negotiate'值控制的功能也被标记为“处于危险中的功​​能”,因此很可能不支持设置该值。

规范说:“用户代理不能实现非复用的RTCP,在这种情况下,它将拒绝使用协商策略构造RTCPeerConnection的尝试。”

关于javascript - 如何更改Webrtc rtcpMuxPolicy?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57794305/

10-10 02:12