4

I am getting a video url I have stored from my CloudFirestore DB and displaying network videos in a listView.buiilder(). enter image description here when I set

autiInitialize = true

or try to initialize the video in any other way I get Error

Exception has occurred.
Bad state: Future already completed

and

I/flutter ( 6187): ══╡ EXCEPTION CAUGHT BY FOUNDATION LIBRARY ╞════════════════════════════════════════════════════════
I/flutter ( 6187): The following assertion was thrown while dispatching notifications for VideoPlayerController: 
I/flutter ( 6187): setState() or markNeedsBuild() called during build.
I/flutter ( 6187): This MaterialControls widget cannot be marked as needing to build because the framework is already
I/flutter ( 6187): in the process of building widgets. A widget can be marked as needing to be built during the build
I/flutter ( 6187): phase only if one of its ancestors is currently building. This exception is allowed because the
I/flutter ( 6187): framework builds parent widgets before children, which means a dirty descendant will always be
I/flutter ( 6187): built. Otherwise, the framework might not visit this widget during this build phase.
I/flutter ( 6187): The widget on which setState() or markNeedsBuild() was called was:
I/flutter ( 6187):   MaterialControls(state: _MaterialControlsState#47383)

part of my code

VideoPlayerController  retcontroller(String varainatVideo){
    if(playercontroller == null){
      playercontroller = VideoPlayerController.network(varainatVideo);
    }
    return playercontroller;
  }


   Chewie(
  retcontroller(${snapshotDocuments[index].data['videos']}),
 autoInitialize: true,
cupertinoProgressColors: ChewieProgressColors(),
showControls:false,
 ),
Norbert
  • 6,874
  • 14
  • 40
  • 65

1 Answers1

12

Looks like you're trying to change the state during the UI build, be sure you're not using setState(...) in ListView.builder(...)

Take this as an example.

Chung Wei Leong
  • 184
  • 1
  • 7