Приложение для демонстрации бага с инициализацией SDK 1.42.35
При инициализации SDK (createJazzWebSdk
) в useEffect
и работе с локальными
устройствами (getLocalDevices
) зависают методы:
requestUserMediaPermissions
getSelectedAudioInputStream
getSelectedVideoInputStream
Проблема проявляется ТОЛЬКО если сайту уже были ранее предоставлены разрешения на доступ к камере и микрофону.
В React 18 проблема проявляется нестабильно (см. комментарии в коде).
В React 17 проблема обходится (см. комментарии в коде), но нет 100% уверенности, что это работает всегда.
Предположительно это зависит от тайминга вызова createJazzWebSdk
. Если вызов
createJazzWebSdk
делать непосредственно после инициализации пакета
@salutejs/jazz-sdk-web
(вне компонентов React
без использования
useEffect
), то все ОК.
Проблема ЕСТЬ:
- Chrome 122.0.6261.131 (Windows)
- Yandex 24.1.4.827 (Windows)
- Yandex 22.11.0.2408 (Mac OS)
- Sber 9.2.60.1 (Mac OS)
Проблемы НЕТ:
- Firefox 124.0.1 (Windows)
- Safari 17.4 (Mac OS)
- В браузере удаляем разрешения на использование камеры и микрофона для сайта localhost:8080
- Переходим по ссылке
http://localhost:8080
- Даем разрешение на использование камеры и микрофона
- В консоли смотрим что
Test completed
, все отработало, бага нет - Обновляем страницу
- В консоли видим, что зависли на
Start requestUserMediaPermissions ...
После обновления страницы в консоли должны увидеть Test completed
Для начала установим зависимости
npm install
Запускаем проект
npm start
Переходим по ссылке http://localhost:8080