Фон
Я создаю систему видеочата, которая использует WebRTC.Потоки отправляются из вещателя в Wowza Streaming Engine, а затем отправляются из Wowza любым зрителям.Вещатель потока может переключать, включен ли звук в их трансляцию.Аудио включается или отключается следующим образом:
let audioEnabled = false; // change to true if we want audio
navigator.mediaDevices.getUserMedia({video:true,audio:audioEnabled})
Проблема
Если вещатель вещает без звука, зрители смотрят его через элемент видео HTML5 (как реализовано здесь ).Зритель может заметить, что значок динамика на видеопроигрывателе затенен, и он не может пытаться изменить громкость или отключить звук.
Если вещатель теперь решает включить звук, то соединение WebRTC закрыто,После повторного согласования и повторного открытия зритель видит, что видеосоединение останавливается на несколько секунд, а затем начинает воспроизведение снова. Тем не менее, видеоплеер HTML5 зрителя по-прежнему убежден, что звук все еще отключен .Если видеоплеер HTML5 уничтожен и воссоздан, то звук работает нормально, а значок динамика больше не отображается серым цветом.
Короче говоря
Видеоплеер HTML5 не замечаеткогда аудио добавляется к тому, что раньше было только видео-потоком.
Мои идеи
Обратите внимание, когда поток пересматривается и уничтожается / воссоздаетсявидео проигрыватель HTML5, когда это происходит.
Пусть вещатели включают в себя тихую MediaStreamTrack вместе с видеодорожкой в потоке, отправляемом в Wowza.
Убедите Wowza отправлять тихое аудио вместе с видео, когда оно перераспределяет канал.
Пока
Я понимаю, что это будет прощечтобы помочь решить, если я включил плункер, но мне еще не приходилось сталкиваться с какой-либо публичной рабочей версией webrtc, которую я мог бы использовать, не переопределяя довольно сложную систему только для этого одного вопроса.
Я преследовалкаждый из тОн изложил три идеи, изложенные выше, но хотел бы получить больше уверенности в том, что я на правильном пути, прежде чем потратить дополнительные часы на этот вопрос.
Спасибо за чтение!