繁体   English   中英

如何将值从一个 function 传递到 flutter 中的另一个?

[英]How to pass value from one function to another in flutter?

我想从这个 function 返回一个 videoController 的值,并将它作为一个参数传递给另一个。 当我在这个 function 中打印值时,我得到了我期望的值,但是当将它传递给另一个并打印它时,我得到 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;

}

尝试

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;
   

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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