В настоящее время я использую приложение для видеовызовов, что-то вроде Google Hangout с использованием Twilio Video. Я хочу показать видео человека, который говорит в то время на заднем плане.
Можно ли определить, кто говорит с Twilio Video JS SDK?
В итоге мне удалось получить желаемый результат, используя метод getStats() с использованием 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; } });
Разработчик Twilio здесь.
В настоящее время в SDK нет ничего такого, что могло бы сделать это возможным. Однако вы можете попробовать анализ звука с помощью API Web Audio , чтобы определить скользящее среднее значение самой громкой удаленной звуковой дорожки и использовать ее для отображения текущего динамика. Это не то, что я только что попробовал, но я думаю, что было бы интересно поэкспериментировать.