【发布时间】:2018-12-13 23:28:45
【问题描述】:
我目前正在实现视频通话应用程序,例如使用 Twilio Video 的 Google Hangout。我想在后台显示当时正在讲话的人的视频。
是否可以检测谁在使用 Twilio Video JS SDK 说话?
【问题讨论】:
标签: twilio twilio-api twilio-video
我目前正在实现视频通话应用程序,例如使用 Twilio Video 的 Google Hangout。我想在后台显示当时正在讲话的人的视频。
是否可以检测谁在使用 Twilio Video JS SDK 说话?
【问题讨论】:
标签: twilio twilio-api twilio-video
编辑
Twilio 视频 SDK 现在包括对 detecting and updating the dominant speaker 的支持。详情请见the documentation。
原答案
这里是 Twilio 开发者宣传员。
目前 SDK 中没有任何内置功能可以实现这一点。但是,您可以尝试audio analysis using the Web Audio API 来确定最响亮的远程音轨的移动平均值,并使用它来显示当前扬声器。这不是我刚刚尝试过的东西,但我认为尝试一下会很有趣。
【讨论】:
最后,我设法通过使用 Twilio Video JS SDK 的 getStats() 方法获得了我想要的结果。我将示例代码放在这里,以便对希望实现相同功能的人有用。
参考: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;
}
});
【讨论】: