如何优化 flutter 中的视频卷轴

问题描述 投票:0回答:1

我的 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);
    });
  }
}

flutter video video-streaming video-processing video-compression
1个回答
0
投票

您可以使用 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) {});

提示:当您处于浏览量倒数第二个视频时,您可以加载下一组视频

© www.soinside.com 2019 - 2024. All rights reserved.