Обзор прямой трансляции
Используйте LiveStreamingAPI для получения изображения камеры подключённого устройства в реальном времени. Устройство может отдавать RTSP-поток через свою точку доступа, отдельные JPEG-кадры или поддерживать оба режима.
Animated workflow
Жизненный цикл трансляции устройства
Выберите поддерживаемый транспорт, согласуйте ресурсы устройства и отображения, а finish callback считайте итоговым сигналом сессии.
Возможности
RTSP-трансляция
Запуск RTSP-сеанса устройства, подключение к его точке доступа и воспроизведение потока
JPEG-трансляция изображений
Получение и отображение последовательности JPEG-изображений с подключённого устройства
Остановка трансляции
Остановка активного сеанса трансляции устройства и освобождение ресурсов отображения
Реализация с помощью AI
Разработка с AI
Реализуйте этот сценарий с AI
Используйте официальный навык «Потоковая передача с AIBuds» и адаптируйте сценарий к приложению.
Прочитайте и выполните инструкции https://docs-aibuds.github.io/ru/skills/stream-aibuds-live-media. Используйте этот навык, чтобы реализовать «Потоковая передача с AIBuds» в данном iOS-проекте и проверить результат.Режимы трансляции
| Режим | Возможность | Доставка медиа | Отображение в приложении |
|---|---|---|---|
| RTSP | supportsRTSPLiveStreaming | SDK координирует точку доступа устройства и возвращает адрес rtsp://. | Используйте AIBudsLiveStream или другой совместимый RTSP-плеер. |
| JPEG | supportsJPEGImageLiveStreaming | SDK вызывает обработчик JPEG для каждого полученного изображения. | Декодируйте каждое полное значение Data / NSData и обновляйте UI. |
Ответственность фреймворков
AIBuds.xcframeworkпредоставляетLiveStreamingAPI, свойства возможностей, callbacks сессии и интеграциюRTSPStreamParams.AIBudsFoundation.xcframeworkопределяетRTSPStreamParams.AIBudsLiveStream.xcframeworkпредоставляет необязательные API воспроизведения RTSP и ретрансляции RTSP в RTMP. Запуск потока устройства не создаёт плеер или publisher автоматически.
Рекомендации
- До запуска проверяйте свойство поддержки выбранного режима.
- Отделяйте состояние UI от промежуточных callbacks; состояние сессии определяют только обработчики запуска и завершения.
- Выполняйте работу UIKit в главной очереди.
- Останавливайте ресурсы воспроизведения или ретрансляции вместе с сессией устройства.
- Считайте потерю точки доступа и завершение не пользователем восстанавливаемыми ошибками, а не успешной остановкой.
Примечания
- Публичный API не предоставляет достоверное свойство
isLiveStreaming; храните состояние отображения локально и согласуйте его через callbacks. - RTSP использует Wi-Fi-точку доступа и может временно изменить сетевой маршрут iPhone.
- Режим JPEG выдаёт сжатые изображения, а не декодированный объект видеокадра.
- Публикация RTMP в Demo — необязательный процесс
AIBudsLiveStream.LiveStreamer; самLiveStreamingAPIеё не выполняет.