javascript getUserMedia() API音频流发出回声和尖锐的声音



我一直在尝试开发一个视频会议应用程序,作为第一步,我试图让用户输入视频在本地工作。只需使用简单的HTML标签和javascript getUserMedia() API。

网络摄像头视频工作得很好,但当我试图获得音频流时,它以刺耳的声音开始,然后继续有回声和噪音。

我尝试了很多方法,有人可以建议一个解决方案与代码。如果可能的话,解释一下为什么会出现这个问题。谢谢你。

这是HTML代码

<html>
<head>
<title>Hi - Here</title>
<link rel="stylesheet" href="styles.css"> 
</head>
<body>
<div id="container">
<div>
<video autoplay="true" id="videoElement" ></video>
</div>
</div>
</body>
<script src="webcam.js"></script>
</html>

这是javascript。

var videoConstrains = { 
audio: true ,
video:
{ 
width: {min: 650 , ideal: 1280 , max: 1920}, 
height: {min: 480 , ideal: 720 , max: 1080},
}
};

let video = document.getElementById('videoElement')
if(navigator.mediaDevices && navigator.mediaDevices.getUserMedia){
navigator.mediaDevices.getUserMedia(videoConstrains)
.then((stream)=>{

video.srcObject = stream
})
}

关闭音频环回:停用麦克风或使用耳机,这不是GUM的问题,而是您的设置问题。

您的麦克风可以听到您的扬声器。有时在礼堂里也会发生同样的事情。麦克风接收扬声器的声音,扬声器发出刺耳的呜呜声。这是一个模拟问题。

把麦克风静音。或者当你"让用户输入的视频在本地工作"时;使用耳机而不是笔记本电脑的扬声器和麦克风。

忽略音轨流提取视频流

const videoTracks = stream?.getVideoTracks() || [];
const selectedVideoTrack = videoTracks[0];
const newStream = new MediaStream();
newStream.addTrack(selectedVideoTrack);
video.srcObject = newStream

其他方式:在上面的代码中,你可以忽略创建新的MediaStream,但是你必须从现有的流中删除音轨,或者创建没有{audio: true}的流。.

相关内容

  • 没有找到相关文章

最新更新