简体   繁体   中英

How to pass value from one function to another in flutter?

I want return a value of videoController from this function and pass it like a parameter to another. When I print value inside this function I get value as I expect but when pass it to another and print it I get null.

Future<VideoPlayerController> _startVideoPlayer() async {
VideoPlayerController vController =
    VideoPlayerController.file(File(videoFile.path));
videoPlayerListener = () {
  if (videoController != null && videoController.value.size != null) {
    // Refreshing the state to update video player with the correct ratio.
    if (mounted) setState(() {});
    videoController.removeListener(videoPlayerListener);
  }
};
vController.addListener(videoPlayerListener);
await vController.setLooping(true);
await vController.initialize();
await videoController?.dispose();
if (mounted) {
  setState(() {
    imageFile = null;
    videoController = vController;
  });
}

await vController.play();
return videoController;

}

Try

Future<VideoPlayerController> _startVideoPlayer() async {
    VideoPlayerController vController =
    VideoPlayerController.file(File(videoFile.path));
    videoPlayerListener = () {
        if (videoController != null && videoController.value.size != null) {
          // Refreshing the state to update video player with the correct ratio.
          if (mounted) setState(() {});
           videoController.removeListener(videoPlayerListener);
    }
    return videoPlayerListener;
   };
 vController.addListener( await _startVideoPlayer());
      await vController.setLooping(true);
       await vController.initialize();
      await videoController?.dispose();
 if (mounted) {
        setState(() {
            imageFile = null;
             videoController = vController;
             });
          }

       await vController.play();
       return videoController;
   

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM