Ввод видео в видеоплеере занимает слишком много времени для списка видео в просмотре страниц

#flutter #dart

Вопрос:

Итак, у меня есть просмотр страниц.конструктор виджета видеокарты. сначала я вызываю api, и в ответе будут URL-адреса 5 видео(с разбивкой по страницам), когда я прокручиваю еще 5. это код для просмотра страницы

  StreamBuilder<ApiResponse<List<VideoData>>>(
                stream: feedVideoBloc.videosResponseStream,
                builder: (context, snapshot) {
                  if (snapshot.connectionState == ConnectionState.waiting) {
                    return Center(
                      child: SpinKitThreeBounce(
                        color: Colors.pinkAccent,
                        size: 30,
                      ),
                    );
                  } else if (snapshot.data!.data!.isEmpty) {
                    return Center(
                      child: Text('No Videos'),
                    );
                  } else {
                    return Stack(
                      children: [
                        Container(
                          color: Colors.black,
                          child: PreloadPageView.builder(
                            itemCount: snapshot.data?.data?.length,
                            onPageChanged: (index) {
                              userSwiped  ;
                              if (userSwiped == 4) {
                                userSwiped = 0;
                                _showInterstitialAdSwipe();
                              }
                              feedPageIndex = index;
                              print(feedPageIndex);
                              if (index == snapshot.data!.data!.length - 2) {
                                feedVideoBloc.getAllVideos();
                              }
                            },
                            pageSnapping: true,
                            controller: pageViewVideoController,
                            physics: BouncingScrollPhysics(),
                            scrollDirection: Axis.vertical,
                            preloadPagesCount: 1,
                            itemBuilder: (BuildContext context, int index) {
                              if (snapshot.connectionState ==
                                  ConnectionState.waiting) {
                                return CircularProgressIndicator();
                              }
                              if (snapshot.data!.status == Status.LOADING) {}
                              if (snapshot.data!.status == Status.HAS_DATA) {
                                return VideoCard(
                                  followUser: (bool current) {
                                    feedVideoBloc.followUser(
                                        snapshot.data!.data![index].user!.id!,
                                        userModel.token!,
                                        current,
                                        index);
                                  },
                                  likeVideo: (bool current) {
                                    feedVideoBloc.postVideoLike(
                                        snapshot.data!.data![index].id!,
                                        userModel.token!,
                                        current,
                                        index);
                                  },
                                  callback: (String url) {
                                    _showInterstitialAdDownload(index, url);
                                  },
                                  key: Key("unique key $index"),
                                  index: index,
                                  videoData: snapshot.data!.data![index],
                                );
                              }
                              return CircularProgressIndicator();
                            },
                          ),
                        ),
                        Visibility(
                          visible: snapshot.data!.showPaginationLoader amp;amp;
                              feedPageIndex == snapshot.data!.data!.length - 1,
                          child: Center(
                              child: SpinKitThreeBounce(
                            color: Colors.pinkAccent,
                            size: 30,
                          )),
                        ),
                      ],
                    );
                  }
                }),
 

Проблема в том, что каждый раз, когда я прокручиваю страницу, видео на видеокарте занимает слишком много времени, результат-пустой экран по крайней мере за 2-3 секунды до начала видео
.Как лучше реализовать короткое видео, например, прокрутку.