Об этом проекте
Chewie — это пакет пользовательского интерфейса видеопроигрывателя для Flutter, построенный поверх низкоуровневого плагина video_player. Приложения инициализируют и настраивают VideoPlayerController, передают его в ChewieController вместе с параметрами воспроизведения, а затем отображают виджет Chewie. В README подчёркивается, что Chewie является только слоем интерфейса: ошибки воспроизведения и PlatformException, возникающие в video_player, выходят за пределы его ответственности. Оба контроллера после использования следует освобождать через dispose.
Пакет предоставляет варианты оформления элементов управления Material, Material для десктопа и Cupertino. Задокументированные возможности включают автозапуск, повтор воспроизведения, настраиваемую начальную позицию, интерфейс прямого эфира, заглушки, пользовательские цвета полосы прогресса, оверлеи, обработку полноэкранного маршрута и ориентации, управление системными оверлеями, управление блокировкой сна/wakelock, пользовательские виджеты ошибок и собственные элементы управления. Панель параметров обычно показывает скорость воспроизведения и субтитры, но приложения могут добавлять локализованные записи OptionItem или полностью заменять панель с помощью optionsBuilder. Параметр pauseOnBackgroundTap переключает воспроизведение при нажатии на область видео.
Субтитры передаются списком объектов Subtitle с полями index, start, end и text. Они могут отображаться по умолчанию, оформляться с помощью SubtitleStyle или полностью отрисовываться через subtitleBuilder. Chewie умеет отображать распространённую встроенную разметку WebVTT/SubRip, такую как теги жирного шрифта, курсива, подчёркивания и цвета шрифта. Неподдерживаемые теги реплик удаляются, а их текст сохраняется; escape-последовательности декодируются, разбор намеренно выполняется мягко; отрисовку разметки можно отключить.
Главы передаются списком объектов ChewieChapter с возрастающим временем и формируют сегментированные полосы прогресса с названиями глав при наведении или перемотке. Поддержка трансляции предоставляет кнопку cast, выбор устройства, оверлей трансляции, переключение с локального воспроизведения на удалённое и маршрутизацию команд управления, но намеренно не включает отправитель Cast SDK. Приложения реализуют ChewieCastController для обнаружения устройств, состояния сессии и удалённого воспроизведения, а также предоставляют CastMedia с URL, доступным принимающему устройству. При подключении Chewie приостанавливает локальное воспроизведение, загружает удалённый медиафайл на текущей позиции, показывает оверлей и маршрутизирует команды воспроизведения; отключение выполняет обратный процесс. Пример включает фиктивный контроллер трансляции, а в панель управления можно добавлять дополнительные виджеты, например для выбора маршрута AirPlay.
В README перечислены бейджи платформ Android, iOS и web, есть пример приложения, описана миграция с версий до 0.9.0 и отмечены особенности платформ: проблема video_player на Android с состоянием буферизации может скрывать элементы управления, и для неё существуют лишь частичные обходные пути, а воспроизведение в симуляторе iOS требует достаточно свежей версии Flutter.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.