Flutter 微信相机选择器
一个相机选择器,它是
wechat_assets_picker.
的扩展。基于camera进行相机功能实现,基于photo_manager进行资源实现。
特性 ✨
- ? 默认非空
- ? 99% 相似于微信风格
- ? 支持拍照
- ☀️ 支持曝光调整
- ?️ 支持捏合缩放
- ? 支持录像
- ⏱ 支持时长限制
- ? 录制时支持缩放
- ? 支持前景自定义Widget构建
截图 ?
![]() |
![]() |
|---|---|
![]() |
![]() |
准备使用 ?
版本限制
Flutter SDK: >=2.0.0。
设置
用法 ?
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| enableRecording | 布尔值 |
选择器是否可以录制视频。 | 假 |
| onlyEnableRecording | 布尔值 |
选择器是否只能录制视频。仅当enableRecording为true时可用。 |
假 |
| enableAudio | 布尔值 |
选择器是否应录制音频。仅录制时可用。 | 真 |
| enableSetExposure | 布尔值 |
用户是否可以通过点击设置曝光点。 | 真 |
| enableExposureControlOnPoint | 布尔值 |
用户是否可以根据设置的点来调整曝光。 | 真 |
| enablePinchToZoom | 布尔值 |
用户是否可以通过捏合缩放相机。 | 真 |
| enablePullToZoomInRecord | 布尔值 |
用户在录制视频时是否可以通过向上拉进行缩放。 | 真 |
| shouldDeletePreviewFile | 布尔值 |
弹出时是否会删除预览文件。 | 假 |
| maximumRecordingDuration | 持续时间 |
视频录制过程的最大时长。 | const Duration(seconds: 15) |
| theme | ThemeData? |
选择器的ThemeData。 | CameraPicker.themeData(C.themeColor) |
| textDelegate | CameraPickerTextDelegate? |
控制Widgets中文字的文本代理。 | DefaultCameraPickerTextDelegate |
| resolutionPreset | ResolutionPreset |
相机的预设分辨率。 | ResolutionPreset.max |
| cameraQuarterTurns | 整数 |
相机视图应顺时针旋转的四分之一圈数。 | 0 |
| imageFormatGroup | ImageFormatGroup |
描述原始图像格式的输出。 | ImageFormatGroup.unknown |
| foregroundBuilder | Widget Function(CameraValue)? |
将覆盖整个相机预览的前景Widget构建器。 | 空 |
| onEntitySaving | EntitySaveCallback? |
Viewer中保存实体回调的类型定义。 | 空 |
| onError | CameraErrorHandler? |
在拣选过程中发生任何错误时的错误处理程序。 | 空 |
简单用法
final AssetEntity? entity = await CameraPicker.pickFromCamera(context);
常见问题 ?
为什么iOS上的方向行为很奇怪?
目前,iOS上的预览同步不正确。
您可以在此issue中找到更多详细信息
https://github.com/flutter/flutter/issues/89216 .
除此之外,请提交issue来描述您的问题。
贡献者 ✨
感谢这些优秀的人 (表情符号键)
Alex Li ? ? ? ? ? ? ? ? |
Caijinglong ? ? |
Lael ? |
mjl0602 ? ? |
AliasWang ? ? |
本项目遵循all-contributors规范。欢迎任何形式的贡献!



