VideoCompress Mediainfo 错误与颤动

VideoCompress Mediainfo error with flutter

你好,我遇到一个问题,当尝试设置变量 mediainfo 的类型时,flutter 要求 VideoCompress.compressVideo(); returns 是 Future<MediaInfo>

的类型

语法错误如下A value of type 'Future<MediaInfo>' can't be assigned to a variable of type 'MediaInfo'.

并且在使用 VideoCompress.getMediaInfo(file) 时似乎 不是 return MediaInfo 类型,因为当我尝试将其分配给变量时它无法提供.path 方法。

这是代码示例。

static Future<MediaInfo> compressVideo(file, context) async{
    await VideoCompress.compressVideo(file,
        quality: VideoQuality.HighestQuality, deleteOrigin: true);
    final info = VideoCompress.getMediaInfo(file);

    return info;

尝试访问 .path click me

那是因为 compressVideo 函数没有 return MediaInfo,它 return 是未来的,所以你需要等待它。

final info = await VideoCompressApi.compressVideo(filePath, context);
setState((){
  compressedInfo = info.path;
});

编辑: 您还可以使用:

VideoCompressApi.compressVideo(filePath, context).then((info) {
  setState(() => compressedInfo = info.path);
});