Техническое задание: Исправление работы микрофона в React Native WebRTC

Контекст проблемы

Существует мобильное приложение для Android, разработанное с использованием React Native и библиотеки WebRTC. Приложение подключается к видеокомнате на сервере Janus (плагин videoroom) для участия в видеоконференциях.

Описание бага

В текущей реализации обнаружена следующая проблема:

  • Подключение к видеокомнате происходит штатно.
  • Отключение от комнаты также выполняется.
  • Критическая ошибка: после отключения от конференции микрофон устройства остаётся в активном состоянии (индикатор записи отображается в системе).
  • Микрофон освобождается только после полного закрытия (уничтожения) приложения, что неприемлемо для пользовательского опыта и конфеденциальности.

Задача для разработчика

Необходимо проанализировать код приложения, найти причину утечки аудио-ресурсов и реализовать исправление, которое гарантирует:

  1. Корректное и полное освобождение микрофона (и всех связанных с ним ресурсов WebRTC) в момент отключения пользователя от видеокомнаты.
  2. Стабильную работу процесса подключения/отключения.
  3. Соответствие лучшим практикам работы с WebRTC в среде React Native.

Ожидаемый результат

После применения исправления индикатор активности микрофона должен немедленно отключаться при выходе пользователя из видеоконференции, без необходимости закрывать приложение.