【发布时间】:2015-03-10 14:21:29
【问题描述】:
我正在尝试仅在 WebRTC 中静音本地音频播放,更具体地说是在 getUserMedia() 之后和建立任何服务器连接之前。我找到的所有选项都不起作用;这个来自 Muaz Khan 的失败:
var audioTracks = localMediaStream.getAudioTracks();
// if MediaStream has reference to microphone
if (audioTracks[0]) {
audioTracks[0].enabled = false;
}
这种技术也被 described here 视为“工作”,但在 Chrome 版本 39.0.2171.95(64 位)(Ubuntu 14.04)上失败。
据说可以通过使用音量增益来工作的其他方法:
window.AudioContext = window.AudioContext || window.webkitAudioContext;
var audioContext = new AudioContext();
var source = audioContext.createMediaStreamSource(clientStream);
var volume = audioContext.createGain();
source.connect(volume);
volume.connect(audioContext.destination);
volume.gain.value = 0; //turn off the speakers
tl;dr 我不想在扬声器上听到麦克风的输入,但我确实想看到我的视频图像。
解决方法
Benjamin Trent 建议了此解决方法,它通过在视频标签上设置 muted 属性来使音频静音,如下所示:
document.getElementById("html5vid").muted = true;
【问题讨论】:
-
为什么不将html视频标签设置为静音?
-
在我的情况下这并不理想,但标签是否支持音频“仅”静音?
-
静音视频 html 标签会静音与视频相关的音频。视频将继续播放,流中的音频和视频轨道仍然可以访问并能够发送到另一个对等点。不过,听起来您在 ubuntu 上的那个 Chrome 版本中发现了一个确实需要解决的错误。
标签: javascript webrtc