我的 Flutter 应用程序出现问题。我想以与 TikTok 的 Reels 部分相同的方式显示视频。这是我的应用程序的屏幕截图。
问题:
它包含视频卷,但每个视频都需要时间加载。
我尝试过的:
当视频上传到服务器时,我还会对其进行压缩。加载仍然需要时间。
我正在使用的代码:
void _initializeController() async {
String videoUrl = ConstRes.itemBaseUrl + widget.url!;
_controller = VideoPlayerController.network(videoUrl);
final fileInfo = await getCachedVideo(videoUrl);
if (fileInfo == null) {
await _controller!.initialize();
setState(() {
_controller!.setLooping(true);
_controller!.play();
widget.isLoading.call(false);
widget.function.call(_controller);
});
cacheVideo(videoUrl);
} else {
_controller = VideoPlayerController.file(fileInfo.file);
await _controller!.initialize();
setState(() {
_controller!.setLooping(true);
_controller!.play();
widget.isLoading.call(false);
widget.function.call(_controller);
});
}
}
您可以使用 preloadpageview 构建器来预加载视频。
pubspec.yaml
preload_page_view:
文件:
import 'package:preload_page_view/preload_page_view.dart';
PreloadPageView.builder(
controller: _pageController,
preloadPagesCount: 8, // number of videos you want to preload
scrollDirection: Axis.vertical,
itemCount: videos.videos.length,
itemBuilder: (BuildContext context, int position) {});
提示:当您处于浏览量倒数第二个视频时,您可以加载下一组视频