我目前正在实现视频通话应用程序,例如使用 Twilio Video 的 Google Hangout。我想在后台显示当时正在讲话的人的视频。
是否可以检测到谁在使用 Twilio Video JS SDK 说话?
我目前正在实现视频通话应用程序,例如使用 Twilio Video 的 Google Hangout。我想在后台显示当时正在讲话的人的视频。
是否可以检测到谁在使用 Twilio Video JS SDK 说话?
编辑
Twilio 视频 SDK 现在包括对检测和更新主要说话者的支持。有关完整的详细信息,请参阅文档。
原始答案
Twilio 开发人员布道者在这里。
目前 SDK 中没有任何内置功能可以实现这一点。但是,您可以尝试使用 Web Audio API 进行音频分析,以确定最响亮的远程音轨的移动平均值,并使用它来显示当前扬声器。这不是我刚刚尝试过的东西,但我认为尝试一下会很有趣。
最后,我设法使用getStats()
使用 Twilio Video JS SDK 的方法获得了我想要的结果。我将把示例代码放在这里,以便对希望实现相同功能的人有用。
参考:https ://media.twiliocdn.com/sdk/js/video/releases/1.10.0/docs/Room.html
room.getStats().then(statsReportArray => {
statsReportArray.forEach(report => {
let maximumAudioLevel = 0;
let loudestTrackId = null;
report.remoteAudioTrackStats.forEach(audioStat => {
if (audioStat.audioLevel > maximumAudioLevel) {
maximumAudioLevel = audioStat.audioLevel;
loudestTrackId = audioStat.trackId;
}
});