Техническое задание: Исправление работы микрофона в React Native WebRTC
Контекст проблемы
Существует мобильное приложение для Android, разработанное с использованием React Native и библиотеки WebRTC. Приложение подключается к видеокомнате на сервере Janus (плагин videoroom) для участия в видеоконференциях.
Описание бага
В текущей реализации обнаружена следующая проблема:
- Подключение к видеокомнате происходит штатно.
- Отключение от комнаты также выполняется.
- Критическая ошибка: после отключения от конференции микрофон устройства остаётся в активном состоянии (индикатор записи отображается в системе).
- Микрофон освобождается только после полного закрытия (уничтожения) приложения, что неприемлемо для пользовательского опыта и конфеденциальности.
Задача для разработчика
Необходимо проанализировать код приложения, найти причину утечки аудио-ресурсов и реализовать исправление, которое гарантирует:
- Корректное и полное освобождение микрофона (и всех связанных с ним ресурсов WebRTC) в момент отключения пользователя от видеокомнаты.
- Стабильную работу процесса подключения/отключения.
- Соответствие лучшим практикам работы с WebRTC в среде React Native.
Ожидаемый результат
После применения исправления индикатор активности микрофона должен немедленно отключаться при выходе пользователя из видеоконференции, без необходимости закрывать приложение.