У нас есть приложение, разработанное на Python с использованием фреймворка Flet, который построен на основе Flutter. В данный момент для воспроизведения видео мы используем плеер, основанный на библиотеке media_kit и ядре MPV, интегрированной через библиотеку flet-video.
Однако, поведение текущего видеоплеера вызывает проблемы на некоторых устройствах. Мы хотим перейти на более стабильное и нативное решение — ExoPlayer, который используется в официальной Flutter-библиотеке video_player. Для управления интерфейсом плеера мы также рассматриваем использование chewie.
🧩 Цель задачи:
Интегрировать video_player (и опционально chewie) в наше приложение на Python через кастомный контрол Flet, как это сделано в проекте flet-video.
📌 Что нужно сделать:
Flutter (Dart) часть:
Создать Flutter-виджет на основе video_player, возможно с использованием chewie для UI-управления.
Виджет должен принимать параметры (видеоисточник, управление, автозапуск и т.п.).
Подготовить его для встраивания в Flet как Platform Control.
Python (Flet) часть:
Создать Python-обёртку (аналогично video.py).
Связать Python и Flutter-части через структуру кастомных контролов Flet.
Убедиться, что управление воспроизведением и события (onPlay, onPause, onComplete) обрабатываются корректно.
Тестирование:
Проверить работоспособность плеера на Android-устройствах.
Убедиться, что новый плеер работает стабильнее, чем текущий MPV-based плеер.
📁 Примеры для изучения:
https://github.com/flet-dev/flet-video
https://pub.dev/packages/video_player
https://github.com/fluttercommunity/chewie
🎯 Ожидаемый результат:
Готовый кастомный контрол ExoVideo() (или подобный), который можно использовать в Python-приложении на Flet точно так же, как текущий Video() из flet-video.
Поддержка базовых функций: воспроизведение, пауза, остановка, fullscreen, onComplete event и т.п.