gpt4 book ai didi

reactjs - 如何减少 Web RTC 噪音,对话期间的点击声音

转载 作者:行者123 更新时间:2023-12-04 07:23:33 26 4
gpt4 key购买 nike

我在 javascript 中创建了一个带有实时对话模块的应用程序。我正在使用 WebRTC 设置对等连接。信号和候选人似乎都工作正常。对等点不在同一个网络上。
在某些时候,音频开始向流中添加点击。质量开始很快下降。
我试图降低比特率,但无济于事。降低比特率的代码如下所示:

function setMediaBitrates(sdp, videoRate = 250, audioRate = 50) {
let f = navigator.userAgent.search("Firefox");
let modifier = 'AS';
// if (f > -1) {
// videoRate = (videoRate >>> 0) * 1000;
// audioRate = (audioRate >>> 0) * 1000;
// modifier = 'TIAS';
// }

//find the correct m lines (video and audio)
var lines = sdp.sdp.split("\n");
let i = 0;
while (i < lines.length) {
//if we find an m-line
if (lines[i].indexOf("m=") === 0) {
let video = lines[i].indexOf("m=video") === 0;
let audio = lines[i].indexOf("m=audio") === 0;

if (video || audio) {
while(i < lines.length && (lines[i].indexOf("i=") === 0 || lines[i].indexOf("c=") === 0)) {
i++;
}

// If we're on a b line, replace it
if (i < lines.length && lines[i].indexOf("b") === 0) {
lines[i] = `b=${modifier}:${video ? videoRate : audioRate}`;
} else if (i == lines.length) {
lines.push(`b=${modifier}:${video ? videoRate : audioRate}`);
i++;
} else {
i++;
lines.splice(i, 0, `b=${modifier}:${video ? videoRate : audioRate}`);
}
}
}
i++;
}

let s = lines.join("\n");
return { type : sdp.type, sdp : s };
}
使用速率限制,我有大约 15 分钟的良好音频,然后开始出现静态。
我正在使用以下 ReactJS 代码启动对等连接:
pc
.createOffer({ offerToReceiveVideo : useVideo ? 1 : 0 })
.then(sdp => {
pc.setLocalDescription(sdp);

let newSdp = setMediaBitrates(sdp);
dispatch(sendWebRTCSdp(activeConversationId, newSdp));
})
.catch(e => {});

最佳答案

你可以使用 MediaTrackSettings.noiseSuppression但它仍然存在与 safari 的兼容性问题。你也可以禁用echoCancellation因为有时硬件噪声抑制会对慢速互联网产生奇怪的影响。
我记得我在点击声音时遇到了问题,但应该将这些参数提供给 getUserMedia()我确保设置 myVideo.muted = true;其中myVideo是页面上的视频元素,它应该被静音,这样您的声音和对方的声音就不会通过您的两个音频输出设备重复回声。
一些对我有帮助的来源:https://developers.google.com/web/updates/2017/12/disabling-hardware-noise-suppression
https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackSettings/noiseSuppression

关于reactjs - 如何减少 Web RTC 噪音,对话期间的点击声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68351528/

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