如何找到当前的麦克风MediaStream并应用约束-WEBRTC

问题描述 投票:0回答:1

我想编辑BigBlueButton会议使用的麦克风信号,并禁用自动增益控制和回音消除功能。

但是,我没有会议页面中使用的MediaStream实例的信息。那么,第一个问题是是否可以在页面上找到这样的活动流?以后再对其应用约束。 question表示无法找到活动流。但是时间已经过去,也许选择已经改变。另外,可能还有其他一些方法可以访问此流对象。

[除此之外,也许可以通过JS脚本或扩展名更改这些AGC或AEC的浏览器自己的标志吗? (而不是来自浏览器本身)

[此问题的更具体细节:在BBB发行版中,我寻找了使用sip.js方法的js文件(bbb_webrtc_bridge_sip.jsgetUserMedia),并对其进行了编辑以赋予其所需的约束,但无济于事。如果有人知道此特定平台,我想寻求您的帮助。

注:在提到的页面中,有一个音频对象证明了srcObject可以解析为MediaStream,我可以访问它并对其应用有限的操作,但是只能在回声测试中使用。一旦通过此测试并进入实际的会议,对该音频对象的访问将无效。

webrtc html5-audio sip mediastream bigbluebutton
1个回答
0
投票

解决方案原来不是从新的JS脚本或扩展名访问MediaStream,而是如问题的具体说明:从BigBlueButton JS文件内部:

sip.js和bbb_wertc_bridge_sip.js文件属于Flash客户端,现已不使用,而支持html5客户端,因此要编辑的正确文件是:

/usr/share/meteor/bundle/programs/web.browser/app/compatibility/sip.js

因此,我要做的是查找约束实例或创建媒体流的位置,然后插入自定义约束并将其强制放入:

第11941行->。 mediaHint = Object.keys(mediaHint || {}).length ? mediaHint : this.mediaHint;

替换为-> mediaHint = this.mediaHint强制进入以下条件,该条件在以下条件下创建具有我自己的约束的新流:

第11956行->

var constraints = mediaHint.constraints || (this.mediaHint && this.mediaHint.constraints) || {audio: true, video: true};

插入了我自己的约束:

var constraints = { audio: { autoGainControl: false, echoCancellation: false, noiseSuppression: false, }, video:false };

这有效,现在这些约束禁用了AGC,AEC和NS。 
© www.soinside.com 2019 - 2024. All rights reserved.