如何将camera包录制的视频保存至手机相册?求替代gallery_saver的包
替代gallery_saver的视频保存方案推荐
1. image_gallery_saver
这个包目前仍在维护,适配iOS和Android平台,保存视频到相册的用法与你之前用的gallery_saver高度相似,迁移成本极低。
使用步骤:
- 添加依赖到
pubspec.yaml:
dependencies: image_gallery_saver: ^1.7.1 # 请使用pub上的最新版本
- 调用保存方法:
import 'package:image_gallery_saver/image_gallery_saver.dart'; import 'dart:io'; // 传入你已获取的视频File对象 Future<void> saveRecordedVideo(File videoFile) async { final saveResult = await ImageGallerySaver.saveFile(videoFile.path); if (saveResult['isSuccess'] == true) { print('视频已成功保存到相册'); } else { print('保存失败:${saveResult['errorMessage']}'); } }
2. gallery_media_saver
这是另一个专注于媒体文件保存的包,支持批量保存,适配最新的Android和iOS系统权限规则。
使用示例:
添加依赖后,调用方法:
import 'package:gallery_media_saver/gallery_media_saver.dart'; import 'dart:io'; Future<void> saveVideo(File videoFile) async { final result = await GalleryMediaSaver.saveVideo(videoFile.path); if (result) { print('保存成功'); } else { print('保存失败'); } }
3. 原生实现方案(无需第三方包)
如果不想依赖第三方包,可以通过Flutter的平台通道调用原生API实现:
- Android:使用MediaStore API将视频插入相册,并通知媒体扫描器刷新
- iOS:使用PHPhotoLibrary将视频写入相册
不过这种方案需要编写原生代码处理权限和系统差异,适合对包体积有严格要求的场景。
内容的提问来源于stack exchange,提问作者Jonas
相关产品推荐
相关产品推荐

