【问题标题】:Flutter imagepicker.pickvideo return jpgFlutter imagepicker.pickvideo 返回 jpg
【发布时间】:2021-01-30 17:16:04
【问题描述】:

我正在使用它来返回视频文件,但我得到了 .jpg

Future<File> getVideo() async {
     var video = await ImagePicker.pickVideo(
          source: ImageSource.gallery);
      return video;
    }

我想ImagePicker.pickVideo() 返回视频文件而不是 .jpg 文件,以便我可以将此文件上传到 firebase,我该如何实现?

【问题讨论】:

    标签: flutter dart video imagepicker


    【解决方案1】:

    我假设您正在使用该软件包: https://pub.dev/packages/image_picker

    pickVideo() 方法已被弃用,您需要将这些 API 替换为 getVideo()

    正如存储库文档所解释的: https://github.com/flutter/plugins/tree/master/packages/image_picker/image_picker

    这样写:

    final _picker = ImagePicker();
    PickedFile video = await _picker.getVideo(...)
    

    但是我建议使用这个包作为替代方案: https://pub.dev/packages/flutter_document_picker

    此包将允许您选择设备上的所有视频,包括从用户的 Google Drive 或 iCloud 提供商获取的视频。在这种情况下写这个:

    FlutterDocumentPickerParams params = FlutterDocumentPickerParams(
          allowedUtiTypes: [
            'public.video',
            'public.mpeg',
            'public.mpeg-4-audio',
            'com.apple.protected-​mpeg-4-audio'
          ],
          allowedMimeTypes: [
            'video/mpeg',
            'video/x-flv',
            'video/mp4',
            'application/x-mpegURL',
            'video/quicktime',
            'video/x-msvideo',
            'video/x-ms-wmv',
            'video/ogg',
            'video/mp2t',
            'video/3gpp'
          ],
          invalidFileNameSymbols: ['/'],
        );
    
        return await FlutterDocumentPicker.openDocument(params: params);
    

    您需要确保 iOS 和 Android 上视频的 Mimes 和 Uti 类型设置正确。

    【讨论】:

    • 我试过了,但是当我将它转换为文件时,它仍然返回 jpg
    • 尝试我当时建议的其他包
    • 暂时试一试,如果它适合你,这是一个临时解决方法
    • 能否通过返回文件的方式查看结果。所以尝试获取生成的视频文件的路径,然后 print()。检查从包 image_picker 返回的文件是否正确(因为它是视频文件而不是图像文件),或者它是您自己的代码。通常这是您代码中的错误。
    • 感谢您建议使用 getVideo.. 并且在功能上它可以工作,但我困惑了几秒钟,因为它返回 jpg 文件但是当我在 firebase 中看到这个文件时,它被识别为视频.. 我只是好奇为什么它的名字包含'jpg'所以我认为这是它的扩展
    猜你喜欢
    • 2011-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    • 2021-09-28
    • 2020-11-10
    • 2020-07-12
    相关资源
    最近更新 更多