如何查找当前麦克风媒体流并应用约束-WEBRTC
我想编辑BigBlueButton会议使用的麦克风信号,并禁用自动增益控制和回声消除 但是,我没有关于会议页面中使用的MediaStream实例的信息。所以,第一个问题是是否有可能在页面上找到这样的活动流?以便以后对其应用约束。这说明不可能找到活动流。但时间已经过去,也许选择已经改变。另外,可能还有其他一些方法可以到达这个流对象 除此之外,是否有可能从JS脚本或扩展更改这些AGC或AEC的浏览器自身标志?(而不是从浏览器本身) 关于这个问题的更具体的细节:在BBB发行版中,我查找了使用如何查找当前麦克风媒体流并应用约束-WEBRTC,webrtc,html5-audio,sip,mediastream,bigbluebutton,Webrtc,Html5 Audio,Sip,Mediastream,Bigbluebutton,我想编辑BigBlueButton会议使用的麦克风信号,并禁用自动增益控制和回声消除 但是,我没有关于会议页面中使用的MediaStream实例的信息。所以,第一个问题是是否有可能在页面上找到这样的活动流?以便以后对其应用约束。这说明不可能找到活动流。但时间已经过去,也许选择已经改变。另外,可能还有其他一些方法可以到达这个流对象 除此之外,是否有可能从JS脚本或扩展更改这些AGC或AEC的浏览器自身标志?(而不是从浏览器本身) 关于这个问题的更具体的细节:在BBB发行版中,我查找了使用getUs
getUserMedia
方法的js文件(sip.js
和BBB_webrtc_bridge_sip.js
),我对它们进行了编辑,以提供所需的约束,但没有结果。如果有人知道这个特定的平台,我想寻求你的帮助
注意:在上面提到的页面中,有一个音频对象证明了一个解析为MediaStream的srcObject,我可以访问它并对其应用有限的操作,但只能在echo测试中使用。一旦通过此测试并进入实际会议,访问此音频对象将无效 解决方案没有从新的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 解决方案没有从新的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