Flutter imagepicker.pickvideo 返回 jpg
Posted
技术标签:
【中文标题】Flutter imagepicker.pickvideo 返回 jpg【英文标题】:Flutter imagepicker.pickvideo return 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,我该如何实现?
【问题讨论】:
【参考方案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'所以我认为这是它的扩展以上是关于Flutter imagepicker.pickvideo 返回 jpg的主要内容,如果未能解决你的问题,请参考以下文章
[Flutter] flutter项目一直卡在 Running Gradle task 'assembleDebug'...
flutter 日志输出,Flutter打印日志,flutter log,flutter 真机日志
Flutter开发 Flutter 包和插件 ( Flutter 包和插件简介 | 创建 Flutter 插件 | 创建 Dart 包 )
如何解决flutter gradle build error?C:\flutter\packages\flutter_tools\gradle\flutter.gradle' line: 991