没有音频标签的Chrome,WebRCT流中没有音频

时间:2018-11-15 18:28:33

标签: javascript html google-chrome webrtc sip

我有一个Web应用程序可以在客户端之间进行音频呼叫。作为服务器,我通过安全的Web套接字将FreeSwitch与SIP结合使用(使用SIP.js)。当我在firefox和firefox之间打电话时,一切正常,但是当我在firefox和chrome之间打电话时,我在chrome客户端上听不到任何声音。在Firefox客户端上,我可以听到chrome发送的内容。

使用Wireshark,我发现流到达客户端计算机并且是正确的。经过长期的反复试验,我发现在js代码中创建audio标签并将其作为srcObject分配远程流会有所帮助(适应WebRTC doesn't work with AudioContext的解决方案)。

const audioContext = (window.AudioContext || window.webkitAudioContext || window.mozAudioContext || window.oAudioContext || window.msAudioContext);

var aaaudio = new Audio();                                           <--- adding those lines helps
aaaudio.srcObject = sipSession.mediaHandler.getRemoteStreams()[0];   <--- adding those lines helps

audioContext.createMediaStreamSource(sipSession.mediaHandler.getRemoteStreams()[0])
var gainNode = ctx.createGain();
gainNode.gain.value = .5; 
source.connect(gainNode);
gainNode.connect(ctx.destination);

我真的不知道为什么没有音频标签就无法使用,如何解决没有音频标签的情况。我想念什么吗?

Chrome浏览器中是否有任何机制可以阻止js连接的流中的音频输出,而无需创建明确的新音频标签?

信息:Chrome已在禁用和启用cors策略的情况下启动

0 个答案:

没有答案