gpt4 book ai didi

javascript - 录制时未捕获 session 中所有用户的音频

转载 作者:行者123 更新时间:2023-11-30 06:16:41 25 4
gpt4 key购买 nike

所以我正在使用 navigator.getDisplayMedia() 让用户选择屏幕来源以开始录制。但这目前不支持音频,所以我使用 navigator.mediaDevices.getUserMedia({ audio: true }); 获取音频流,然后最终将视频轨道添加到其中,然后通过此流到 mediarecorder。

我的是一个视频 session 网络应用程序,我设法捕获所有类型的音频,但是当任何其他用户加入房间时,我没有在录音中获取他/她的音频。

有人遇到过类似的问题吗?

最佳答案

getUserMedia 给你麦克风

navigator.mediaDevices.getUserMedia({audio: true}) 为您提供用户的麦克风,而不是来自他们系统的音频。

他们的麦克风可能会接收到一些系统音频,但不能保证。例如,如果:

  1. 他们调低了音量
  2. 他们正在使用耳机

您听不到其他参与者的具体原因是 echoCancellation在所有浏览器中默认打开。

如果没有回声消除,当您的麦克风拾取到远程扬声器时,他们的声音会立即传回给他们,他们会听到回声。如果他们的麦克风也没有消除回声,你会得到一个回声更多的循环。

如果您知道自己在做什么,可以使用以下方法关闭 echoCancellation:

await navigator.mediaDevices.getUserMedia({audio: {echoCancellation: false}});

或事后:

await stream.getAudioTracks()[0].applyConstraints({echoCancellation: false});

改用网络音频

如果这是您自己的网络 session 应用程序,那么您应该已经拥有所有必要的音轨。您至少应该能够将事件发言人直接馈送到 MediaRecorder,或者甚至可以使用网络音频混合音频。

屏幕共享音频来了

来自屏幕共享的音频是 in the spec ,但它是可选的,既可以实现,也可以由最终用户自行决定。

到目前为止,我相信 Chrome 正在努力实现它。

关于javascript - 录制时未捕获 session 中所有用户的音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55714629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com