MuxBroadcast
Добавление функции прямой трансляции или вещания позволяет пользователям смотреть событие в реальном времени. Вместо того чтобы строить прямую трансляцию с нуля, вы можете использовать встроенный виджет под названием MuxBroadcast, предоставляемый FlutterFlow. Виджет MuxBroadcast позволяет создать функцию вещания за считаные минуты, и вы сможете сосредоточиться на основных функциях вашего приложения.
MuxBroadcast использует Mux, сервис потоковой передачи видео на основе API. Подробнее узнайте о принципе работы потокового видео.
На этой странице вы узнаете, как использовать виджет MuxBroadcast ( путем создания примера приложения) и настраивать виджет MuxBroadcast.
Создание приложения для вещания (прямой трансляции)
В этом разделе мы пошагово разберем создание примера приложения, которое позволяет пользователям создавать и смотреть прямую трансляцию. На главной странице отображается список всех трансляций. Если трансляция активна, пользователи увидят иконку вещания. Нажатие на название трансляции откроет новую страницу с активной или завершенной трансляцией, в то время как нажатие на плавающую кнопку действий приведет на новую страницу, где пользователи смогут начать вещание события.
Итоговое приложение выглядит так:
>
Чтобы создать такое приложение, вам понадобятся следующие страницы и нижняя панель.
- BroadcastListing: Отображает список всех трансляций.
- BroadcastName: Нижняя панель, которая позволяет задать название трансляции.
- StartBroadcast: Позволяет начать трансляцию.
- ViewBroadcast: Позволяет смотреть активную или завершенную трансляцию.
Следующая схема иллюстрирует, как эти страницы будут взаимодействовать:
-
Настройте Firebase для вашего проекта и включите биллинг. Это необходимо для развертывания облачных функций (в вашем проекте Firebase), которые создадут прямую трансляцию на сервере Mux.
-
Получите ключи API и выполните начальную настройку
Добавление виджета MuxBroadcast
1. Создание коллекции Firestore
Чтобы отобразить список трансляций, необходимо хранить записи созданных потоков на вашем серверном бэкенде. Для упрощения мы будем использовать коллекцию Firestore. Коллекция под названием broadcasts будет хранить информацию о потоках, и она выглядит так:
Шаги по созданию коллекции следующие:
- Ознакомьтесь с структурированием базы данных Firebase.
- Создайте коллекцию и настройте как минимум четыре поля, которые хранят информацию о трансляции,
такую как
is_live,name,urlиtime(это будет использоваться для фильтрации списка по последним трансляциям в первую очередь).
2. Создание интерфейса
Теперь пришло время начать создание интерфейса. Здесь мы построим интерфейс для всех страниц и нижней панели. Давайте разберем, как это сделать:
2.1 Страница BroadcastListing
На этой странице:
-
Добавьте ListView, чтобы отобразить все трансляции.
- Внутри ListView добавьте Card > Row > Text (для отображения названия потока) и Icon (чтобы указать, активен ли поток).
-
Добавьте FloatingActionButton для открытия нижней панели.
После добавления это должно выглядеть примерно так:
2.2 BroadcastName (компонент BottomSheet)
Это будет использоваться для получения названия потока от пользователей.
Создайте новый компонент под названием BroadcastName, который будет использоваться как нижняя панель. Внутри компонента добавьте TextField и Button.
Это должно выглядеть так:
2.3 Страница StartBroadcast
Эта страница соде ржит виджет MuxBroadcast, отвечающий за запуск и остановку прямой трансляции.
Чтобы добавить виджет MuxBroadcast, перетащите виджет MuxBroadcast из вкладки Base Elements (в панели виджетов) или добавьте его напрямую из дерева виджетов.
Вот как это выглядит:
2.4 Страница ViewBroadcast
Эта страница содержит виджет VideoPlayer, отображающий активную или завершенную трансляцию.
На этой странице добавьте виджет VideoPlayer и удалите его высоту и ширину (это сделает его полноэкранным).