使用 rtc 的 Firefox createMediaStreamDestination 错误?
Firefox createMediaStreamDestination bug using rtc?
我通过 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
在 Firefox 中!在 chrome 中都是 MediaStreams
要使音频静音,您可以通过以下操作enable/disable 轨道本身:
stream.getAudioTracks()[0].enabled = false; // mutes
这不会解决增益节点的问题,目前很可能是 Firefox 中的 bug/limitation(在这种情况下,我们只能等待修复)。但是,如果目的是(取消)静音,这应该可行(它也适用于视频轨道)。
好的,感谢@Ken Fyrstenberg 我刚刚尝试了 Firefox Nighly 构建。
在 Nighly 上,everythink 工作正常(如 Chrome)。数据类型为:
stream //type: LocalMediaStream
dest.steam //type: MediaStream
和以前一样,但我可以听到对方的声音,并且可以将麦克风静音。
所以我只需要等待发布:P
我通过 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
在 Firefox 中!在 chrome 中都是 MediaStreams
要使音频静音,您可以通过以下操作enable/disable 轨道本身:
stream.getAudioTracks()[0].enabled = false; // mutes
这不会解决增益节点的问题,目前很可能是 Firefox 中的 bug/limitation(在这种情况下,我们只能等待修复)。但是,如果目的是(取消)静音,这应该可行(它也适用于视频轨道)。
好的,感谢@Ken Fyrstenberg 我刚刚尝试了 Firefox Nighly 构建。 在 Nighly 上,everythink 工作正常(如 Chrome)。数据类型为:
stream //type: LocalMediaStream
dest.steam //type: MediaStream
和以前一样,但我可以听到对方的声音,并且可以将麦克风静音。
所以我只需要等待发布:P