是否可以检测谁在使用 Twilio Video JS SDK 说话?

Is it possible to detect who is speaking with Twilio Video JS SDK?

我目前正在实施视频通话应用程序,例如 Google 使用 Twilio Video 的视频群聊。我想在后台显示当时正在讲话的人的视频。

是否可以检测谁在使用 Twilio Video JS SDK 说话?

编辑

Twilio 视频 SDK 现在包含对 detecting and updating the dominant speaker. Please see the documentation 的支持以获取完整详细信息。

原回答

此处为 Twilio 开发人员布道师。

目前 SDK 中没有内置任何东西可以实现这一点。但是,您可以尝试 audio analysis using the 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;
        }
      });