我通过 rtc 流式传输音频并想要静音和取消静音音频。
这有效......但没有增益控制:
function(stream) { /* getUserMedia stream */
console.log("Access granted to audio/video");
peer_connection.addStream(stream);
}
这适用于 Chrome,但不适用于 Firefox(具有增益控制)
function(stream) { /* getUserMedia stream */
console.log("Access granted to audio/video");
var microphone = context.createMediaStreamSource(stream);
gainNode = context.createGain();
var dest = context.createMediaStreamDestination();
microphone.connect(gainNode);
gainNode.connect(dest);
local_media_stream = dest.stream;
peer_connection.addStream(local_media_stream);
}
我没有收到任何错误,也没有听到任何声音。
当我将 GainNode 发送到 context.destination 时,我可以听到自己的声音。
我认为“context.createMediaStreamSource(stream)”以任何方式被破坏。
谁能告诉我为什么?以及如何解决这个问题。
编辑:所以我检查了流并且:
stream //type: LocalMediaStream
dest.steam //type: MediaStream
在火狐浏览器中!在 Chrome 中,两者都是 MediaStreams
要使音频静音,您可以通过执行以下操作来启用/禁用轨道本身:
stream.getAudioTracks()[0].enabled = false; // mutes
这并不能解决增益节点的问题,这很可能是目前 Firefox 中的一个错误/限制(在这种情况下我们只能等待修复)。但如果目的是(取消)静音,这应该可行(它也适用于视频轨道)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)