chewie
chewie copied to clipboard
Video re-downloads when seeking back on Android
Issue description:
- Using a network mp4 video.
- The video has finished downloading before I press play.
- When seeking forward, there is generally no problem.
- When seeking back on Android, the video re-downloads before proceeding.
- No issue on iOS: there is no loading time at all when seeking.
Demonstration on Android: https://github.com/fluttercommunity/chewie/assets/59314108/7ba433a9-994e-4de0-b86e-d3c676cdea59
Demonstration on iOS: https://github.com/fluttercommunity/chewie/assets/59314108/6fcb3b50-d289-4fa1-9be8-77ed26f90610
Minimal reproduction code:
import 'package:chewie/chewie.dart';
import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';
void main() {
runApp(
const MaterialApp(
home: Scaffold(
body: MyApp(),
),
),
);
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
late final VideoPlayerController videoController;
ChewieController? chewieController;
Future<void> init() async {
const url =
'https://firebasestorage.googleapis.com/v0/b/calistree.appspot.com/o/exerciseVideos%2Fe097%2Fe097-264.mp4?alt=media';
videoController = VideoPlayerController.network(url);
await videoController.initialize();
chewieController = ChewieController(
videoPlayerController: videoController,
);
setState(() {});
}
@override
void initState() {
init();
super.initState();
}
@override
void dispose() {
videoController.dispose();
chewieController?.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return chewieController == null
? const Center(
child: CircularProgressIndicator.adaptive(),
)
: SafeArea(
child: Chewie(controller: chewieController!),
);
}
}