#flutter #flutter-layout #flutter-video-player
#трепетание #флаттер-макет #flutter-видеопроигрыватель
Вопрос:
Мне нужно воспроизвести видео с активом в моем приложении, но плагин vide Player продолжает буферизацию, но не воспроизводит видео. Но если я использую сетевые видеоролики, то код работает отлично.
Вот мой код,
class LandscapePlayer extends StatefulWidget {
@override
_LandscapePlayerState createState() => _LandscapePlayerState();
}
class _LandscapePlayerState extends State<LandscapePlayer> {
FlickManager flickManager;
@override
void initState() {
super.initState();
flickManager = FlickManager(videoPlayerController:
VideoPlayerController.asset('videos/first.mp4',),);
}
@override
void dispose() {
flickManager.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: FlickVideoPlayer(
flickManager: flickManager,
preferredDeviceOrientation: [
DeviceOrientation.landscapeRight,
DeviceOrientation.landscapeLeft
],
systemUIOverlay: [],
flickVideoWithControls: FlickVideoWithControls(
controls: LandscapePlayerControls(),
),
),
);
}
}
Я добавил видеофайл в качестве зависимости в файл pubspec.yaml. Я не знаю, почему это работает для сетевых файлов, но не для файла активов.
Комментарии:
1. Какую ошибку вы получаете? Вы проверили, правильный ли путь
videos/first.mp4
?2. Я не получил никакой ошибки во время отладки. Но видео не воспроизводится. Да, путь указан правильно.
3. Я вижу там лишнюю запятую. Может быть, попробуйте удалить это? Нравится:
VideoPlayerController.asset("videos/first.mp4")
4. Нет, это не имеет никакого значения
5. Спасибо, я решил проблему.
Ответ №1:
Я решил эту проблему. плагин video_player использует плагин Exo player в Android, который некорректно работает на некоторых устройствах (из-за декодеров или чего-то еще). Простой альтернативой является использование плагина native_video_view.