我正在开发一个Flutter演示应用程序。我想在手机存储中使用有关视频的元数据。我能够提取该视频的路径,但不知道如何在dart / flutter中提取其元数据。
我需要以下元数据:
答案 0 :(得分:1)
在FLutter中获取视频创建时间的一种方法是使用flutter_ffmpeg插件。
将其添加到pubspec.yaml
:
dependencies:
flutter_ffmpeg: ^0.3.0
获取视频的文件路径,例如使用file_picker:
File pickedFile = await FilePicker.getFile();
使用ffmpeg通过视频路径获取视频的元数据:
final FlutterFFprobe flutterFFprobe = FlutterFFprobe();
MediaInformation mediaInformation = await flutterFFprobe.getMediaInformation(pickedFile.path);
Map<dynamic, dynamic> mp = mediaInformation.getMediaProperties();
String creationTime = mp["tags"]["creation_time"];
print("creationTime: $creationTime");
在控制台中,您将获得如下内容:
I/flutter (13274): creationTime: 2020-09-24T17:59:24.000000Z
注意:将此插件添加到您的应用中会增加最终apk的权重!
答案 1 :(得分:0)
您可以使用video player plugin官方的VideoPlayerController.file
构造函数(由Google官方小组维护,因此您不必担心它的未来和稳定性)来访问文件并获取安装软件包后,会显示以下元信息:
首先,这是您的VideoPlayerController
:
VideoPlayerController controller = new VideoPlayerController.file('');//Your file here
持续时间:
controller.value.duration ;
视频名称,您应该已经拥有该名称,因为您可以到达文件路径并将其传递给播放器构造函数。
3。视频大小:
controller.value.size ;
4。至于拍摄视频的时间,我对此无能为力。您必须找到另一种解决方案。
答案 2 :(得分:0)
您的代码是正确的Mazin Ibrahim,您只需对其进行初始化。将来的值将返回所有详细信息。
Future getVideo() async {
await MultiMediaPicker.pickVideo(source: ImageSource.gallery).then((video){
File _video = video;
VideoPlayerController fileVideocontroller = new VideoPlayerController.file(_video)
..initialize().then((_) {
debugPrint("========"+fileVideocontroller.value.duration.toString());
});
});
}