Flutter 微信相机选择器

一个相机选择器,是 wechat_assets_picker 的扩展。基于 camera 实现相机功能,基于 photo_manager 实现资源管理。

功能 ✨

  • [x] ? 默认支持非空
  • [x] ? 99% 相似于微信风格
  • [x] ? 支持拍照
    • [x] ☀️ 支持曝光度调节
    • [x] ?️ 支持捏合缩放
  • [x] ? 支持录像
    • [x] ⏱ 支持时长限制
    • [x] ? 录像时支持缩放
  • [x] ? 支持前景自定义 Widget 构建

截图 ?

68747470733a2f2f747661312e73696e61696d672e636e2f6c617267652f30303753385a496c677931676774743679726471656a333075303174303137772e6a7067 68747470733a2f2f747661312e73696e61696d672e636e2f6c617267652f30303753385a496c677931676774743679683378346a3330753031743077756f2e6a7067
68747470733a2f2f747661312e73696e61696d672e636e2f6c617267652f30303753385a496c67793167677474367a316837786a33307530317430316b782e6a7067 68747470733a2f2f747661312e73696e61696d672e636e2f6c617267652f30303753385a496c67793167677474367a617276686a333075303174307835662e6a7067

准备使用 ?

版本限制

Flutter SDK: >=2.0.0

设置

用法 ?

名称 类型 描述 默认值
enableRecording 布尔值 选择器是否可以录制视频。
onlyEnableRecording 布尔值 选择器是否只能录制视频。仅在 enableRecordingtrue 时可用。
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