gpt4 book ai didi

javascript - 如何更改 Webrtc rtcpMuxPolicy?

转载 作者:行者123 更新时间:2023-11-29 22:48:54 25 4
gpt4 key购买 nike

我正在尝试更改 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 网络解决方案,并且在流式传输视频时一切正常,当我添加 dataChannel 时出现问题,即

sendChannel = pc.createDataChannel('sendDataChannel');

在我的 web 解决方案中添加以上行后,android 抛出一条错误消息:

setSDP error: Failed to set remote offer sdp: Session error code: ERROR_CONTENT. Session error description: Failed to setup RTCP mux filter..

最佳答案

首先,删除 peerIdentity: [{ and }]。只有 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'negotiate' 值控件的功能在specification 中被标记为“Feature at risk” ,因此很可能不支持设置此值。

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

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com