Javascript 在WebRTC中取消静音后,出现';这是一个严重的本地环回(自身语音)问题

Javascript 在WebRTC中取消静音后,出现';这是一个严重的本地环回(自身语音)问题,javascript,webrtc,Javascript,Webrtc,我们已经成功地实现了WebRTC,它是我们的音频通话和视频通话系统,包括CoTurn STUN/TURN服务器等 一切正常,直到我们决定实施静音麦克风和静音网络摄像头功能(仅适用于本地流),我们仍然可以看到或听到对方,但他们看不到或听不到我们 当静音麦克风(本地流)时,它可以正常工作,没有问题,但是当我们取消静音麦克风时,似乎有一个来自本地流的严重回音(我们听到自己的声音) 这种行为仅在CHROME中出现,我们使用的是最新版本83.0.4103.97(官方版本)(64位)。我们在最新的Firef

我们已经成功地实现了WebRTC,它是我们的音频通话和视频通话系统,包括CoTurn STUN/TURN服务器等

一切正常,直到我们决定实施静音麦克风和静音网络摄像头功能(仅适用于本地流),我们仍然可以看到或听到对方,但他们看不到或听不到我们

当静音麦克风(本地流)时,它可以正常工作,没有问题,但是当我们取消静音麦克风时,似乎有一个来自本地流的严重回音(我们听到自己的声音)

这种行为仅在CHROME中出现,我们使用的是最新版本83.0.4103.97(官方版本)(64位)。我们在最新的Firefox中进行了尝试,但这种行为并不存在

无论我们尝试了什么,我们似乎都无法消除这个严重的环回问题。我希望这里的一些朋友能帮助我们

这是我们目前使用的代码

var isMute = false;
$(document).on('click','#audio_mute_div',function(){
    var localStream = connection.attachStreams[0];
    console.log(localStream);
    if(isMute==false){
          isMute = true;;
          localStream.mute('audio');
          $('.audio_mute').attr('src','./assets/mute.png');
    }else{
         isMute = false;
         localStream.unmute('audio');
         $('.audio_mute').attr('src','./assets/audio.png');
    }
});

var isVideoMute = false;
$(document).on('click','#video_mute_div',function(){
    var localStream = connection.attachStreams[0];
    if(isVideoMute==false){
           isVideoMute = true;
           localStream.mute('video');
           $('.video_mute').attr('src','./assets/no-video.png');
    }else{
         isVideoMute = false;
         localStream.unmute('video');
         $('.video_mute').attr('src','./assets/video-camera.png');
    }
});

确保本地音频/视频元素已静音或音量设置为0。
这是WebRTC中比较常见的错误之一。

确保本地音频/视频元素已静音或音量设置为0。
这是WebRTC中比较常见的错误之一。

我通过简单地添加这一行来解决这个问题

connection.streamEvents.selectFirst('local').mediaElement.muted=true

在UnMute函数中,现在函数如下所示

isMute = false;
localStream.unmute('audio');
connection.streamEvents.selectFirst('local').mediaElement.muted=true;
$('.audio_mute').attr('src','./assets/audio.png');

它解决了环回问题,我花了5天时间寻找这个解决方案,最后在这里找到了它-

我通过简单地添加这一行来解决这个问题

connection.streamEvents.selectFirst('local').mediaElement.muted=true

在UnMute函数中,现在函数如下所示

isMute = false;
localStream.unmute('audio');
connection.streamEvents.selectFirst('local').mediaElement.muted=true;
$('.audio_mute').attr('src','./assets/audio.png');

它解决了环回问题,我花了5天时间来寻找这个解决方案,最后在这里找到了它-

我们做了静音,实际上是工作的,只是当我们取消静音麦克风,然后环回开始(在Chrome中)。奇怪的是,在这种情况下,如果我们将网络摄像头静音,则环回会停止…我们确实做到了静音,但实际上,当我们取消静音麦克风时,环回会开始(在Chrome中)。奇怪的是,在这种情况下,如果我们将网络摄像头静音,那么回送将停止。。。