В процессе разработки мобильного приложения для управления прибором и отображения видеопотока команда столкнулась с несколькими ключевыми сложностями:
- Выбор плеера для RTSP и минимизация задержки
Изначально стояла задача найти подходящий плеер для воспроизведения RTSP-видеопотока с минимальной задержкой. Было протестировано несколько решений, включая нативные и кроссплатформенные плееры, прежде чем был выбран fijkplayer. Дополнительно выполнена тонкая настройка параметров ffmpeg и самого плеера, включая оптимизацию буферизации, работу с ключевыми кадрами и таймаутами, что позволило достичь минимальной задержки при воспроизведении видеопотока.
- Стабильное подключение по Bluetooth
Основной проблемой было обеспечение устойчивого соединения по BLE, учитывая множество возможных ошибок и сценариев разрыва связи. Для решения этой задачи реализована полноценная система обработки ошибок и автоматического переподключения, которая работает в фоне и прозрачно для пользователя. Это позволило поддерживать постоянное соединение с прибором даже при кратковременных сбоях сигнала.
- Работа с Wi-Fi без доступа к интернету
Подключение к Wi-Fi точке прибора оказалось сложным, так как поведение устройств отличается на iOS и Android, а на Android оно дополнительно зависит от версии прошивки. Для решения проблемы мы использовали библиотеку wifi_iot, которая позволяет управлять подключением к локальной сети прибора напрямую, и реализовали проверку состояния Wi-Fi на устройстве с выводом уведомлений для пользователя о необходимости включить модуль. Это обеспечило стабильное подключение к приборам на различных моделях смартфонов.
- Сохранение и отображение медиафайлов
Необходимо было не только сохранять скриншоты и записи видеопотока в память телефона, но и корректно отображать их в системной галерее. Для этого была реализована интеграция с файловой системой устройства и автоматическое обновление галереи после создания файлов, а также поддержка структуры папок по каждому прибору для удобной навигации.
- Синхронизация данных между прибором и приложением
При работе с медиафайлами и настройками прибора важным было поддерживать корректную синхронизацию между данными на устройстве и в приложении. Мы реализовали механизм отслеживания состояния файлов на приборе и их отображения в мобильной галерее, с возможностью скачивания, удаления и редактирования медиафайлов в обеих системах.