Webrtc navigator.mediaDevice.getCapabilitites显示EchoCancellation假为Safari 13.0.3

时间:2019-11-27 08:27:41

标签: safari webrtc opentok

我在我的项目中仅将webrtc用于音频,除野生动物园外,其他浏览器都正常运行。我在野生动物园中遇到的问题是回声(即我听到自己的声音,但对接收器端来说很干净)。

使用OpenTox

var options = {
               insertDefaultUI: false, 
               audioSource:"<id>",  
               height: 120,
               width: 180,
               insertMode: 'append',
               name: "voice session"
               }
OT.initPublisher(placeholder, options, (publisher) => {
  console.log(publisher.getAudioSource().getCapabilities())
})

当我将这些选项传递给发布者时,我会得到回音。

OT.initPublisher(placeholder, null, (publisher) => {
  console.log(publisher.getAudioSource().getCapabilities())
})

当我将null传递给发布者时,野生动物园中也没有回声。

两个控制台的输出相同

{deviceId: "98152D568180063419A471521CA4EFFDD18240F4", echoCancellation: [true, true], sampleRate: {max: 96000, min: 8000}, volume: {max: 1, min: 0}}

当您查看console.log输出的echoCancellation时,它说[true,true],这意味着不存在降噪

带有Safari 13的OT.initPublisher的奇怪行为

请帮助我解决此问题

1 个答案:

答案 0 :(得分:0)

我有类似的问题。 纯音频模式将没有回声消除。

我的解决方案: -创建发布者时,请勿发布视频和音频。 -当流准备就绪(这是onStreamCreated事件)时,然后发布音频 -这样音频回声就消失了