Flutter 微信相机选择器
一个相机选择器,是 wechat_assets_picker 的扩展。基于 camera 实现相机功能,基于 photo_manager 实现资源管理。
功能 ✨
- [x] ? 默认支持非空
- [x] ? 99% 相似于微信风格
- [x] ? 支持拍照
- [x] ☀️ 支持曝光度调节
- [x] ?️ 支持捏合缩放
- [x] ? 支持录像
- [x] ⏱ 支持时长限制
- [x] ? 录像时支持缩放
- [x] ? 支持前景自定义 Widget 构建
截图 ?
![]() |
![]() |
|---|---|
![]() |
![]() |
准备使用 ?
版本限制
Flutter SDK: >=2.0.0。
设置
用法 ?
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| enableRecording | 布尔值 |
选择器是否可以录制视频。 | 假 |
| onlyEnableRecording | 布尔值 |
选择器是否只能录制视频。仅在 enableRecording 为 true 时可用。 |
假 |
| enableAudio | 布尔值 |
是否选择器应该录制音频。仅在录制时可用。 | 真 |
| enableSetExposure | 布尔值 |
用户是否可以通过点击设置曝光点。 | 真 |
| enableExposureControlOnPoint | 布尔值 |
用户是否可以根据设置的点来调整曝光。 | 真 |
| enablePinchToZoom | 布尔值 |
用户是否可以通过捏合来缩放相机。 | 真 |
| enablePullToZoomInRecord | 布尔值 |
用户在录制视频时是否可以通过上拉来缩放。 | 真 |
| shouldDeletePreviewFile | 布尔值 |
退出时是否会删除预览文件。 | 假 |
| shouldLockPortrait | 布尔值 |
方向是否应设置为纵向。 | 真 |
| maximumRecordingDuration | 持续时间 |
视频录制过程的最大时长。 | const Duration(seconds: 15) |
| theme | ThemeData? |
选择器的 ThemeData。 | CameraPicker.themeData(C.themeColor) |
| textDelegate | CameraPickerTextDelegate? |
控制 Widget 中文本的 Text delegate。 | DefaultCameraPickerTextDelegate |
| resolutionPreset | ResolutionPreset |
相机的预设分辨率。 | ResolutionPreset.max |
| cameraQuarterTurns | 整数 |
相机视图应旋转的顺时针四分之一圈数。 | 0 |
| imageFormatGroup | ImageFormatGroup |
描述原始图像格式的输出。 | ImageFormatGroup.unknown |
| foregroundBuilder | Widget Function(CameraValue)? |
将覆盖整个相机预览的前景 Widget 构建器。 | 空 |
| onEntitySaving | SaveEntityCallback? |
在查看器中保存实体的回调类型定义。 | 空 |
简单用法
final AssetEntity? entity = await CameraPicker.pickFromCamera(context);
GitHub
https://github.com/fluttercandies/flutter_wechat_camera_picker



