tencent_wechat_camera_picker 3.6.2+4 copy "tencent_wechat_camera_picker: ^3.6.2+4" to clipboard
tencent_wechat_camera_picker: ^3.6.2+4 copied to clipboard

discontinuedreplaced by: wechat_camera_picker

A camera picker based on WeChat's UI which is a separate runnable extension to wechat_assets_picker.

Tencent WeChat Camera Picker #

This is a fork package of wechat_camera_picker, and added those following features:

  • Adjust the resolutionPreset automatically, according to the device performance. Aims to solve the issue that video recording may crashed on a mobile phone with relatively lower performance.

  • Fix the issue that it might require for the storage permission twice after captured.

This forked package is maintained by Tencent Cloud.

Thanks a lot to wechat_camera_picker, while their original README can be seen below.

Flutter WeChat Camera Picker #

pub package pub package GitHub stars GitHub forks Build status CodeFactor GitHub license FlutterCandies

Language: English | 中文简体

A camera picker based on WeChat's UI which is a separate runnable extension to wechat_assets_picker. The package based on camera for camera functions and photo_manager for asset implementation.

Category 🗂 #

Features ✨ #

  • ♻️ Fully implementable with States override
  • 💚 99% similar to WeChat style
  • 📷 Picture taking support
  • 🎥 Video recording support
    • ⏱ Duration limitation support
    • 🔍 Scale when recording support
  • ☀️ Exposure adjust support
  • 🔍️ Scale with pinch support
  • 💱 i18n support
    • ⏪ RTL language support
  • 🎏 Fully customizable theme
  • 🖾 Foreground custom widget builder support
  • 🕹️ Intercept saving with custom process

Screenshots 📸 #

Preparing for use 🍭 #

Version constraints #

Flutter SDK: >=2.2.0 .

Setup #

Android 13 (API 33) permissions

If you don't need to take photos or videos, consider removing relevant permission in your apps, more specifically:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.your.app">
    <!-- Add this if you need to take photos. -->
    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
    <!-- Add this if you need to take videos. -->
    <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
</manifest>

Usage 📖 #

Simple usage #

final AssetEntity? entity = await CameraPicker.pickFromCamera(context);

With configurations #

Use CameraPickerConfig for more picking behaviors.

final AssetEntity? entity = await CameraPicker.pickFromCamera(
  context,
  pickerConfig: const CameraPickerConfig(),
);

Fields in CameraPickerConfig:

Name Type Description Default Value
enableRecording bool Whether the picker can record video. false
onlyEnableRecording bool Whether the picker can only record video. Only available when enableRecording is true . false
enableTapRecording bool Whether allow the record can start with single tap. Only available when enableRecording is true . false
enableAudio bool Whether Whether the picker should record audio. Only available with recording. true
enableSetExposure bool Whether users can set the exposure point by tapping. true
enableExposureControlOnPoint bool Whether users can adjust exposure according to the set point. true
enablePinchToZoom bool Whether users can zoom the camera by pinch. true
enablePullToZoomInRecord bool Whether users can zoom by pulling up when recording video. true
shouldDeletePreviewFile bool Whether the preview file will be delete when pop. false
shouldAutoPreviewVideo bool Whether the video should be played instantly in the preview. false
maximumRecordingDuration Duration The maximum duration of the video recording process. const Duration(seconds: 15)
theme ThemeData? Theme data for the picker. CameraPicker.themeData(wechatThemeColor)
textDelegate CameraPickerTextDelegate? Text delegate that controls text in widgets. CameraPickerTextDelegate
resolutionPreset ResolutionPreset Present resolution for the camera. ResolutionPreset.max
cameraQuarterTurns int The number of clockwise quarter turns the camera view should be rotated. 0
imageFormatGroup ImageFormatGroup Describes the output of the raw image format. ImageFormatGroup.unknown
preferredLensDirection CameraLensDirection Which lens direction is preferred when first using the camera. CameraLensDirection.back
lockCaptureOrientation DeviceOrientation? Whether the camera should be locked to the specific orientation during captures. null
foregroundBuilder ForegroundBuilder? The foreground widget builder which will cover the whole camera preview. null
previewTransformBuilder PreviewTransformBuilder? The widget builder which will transform the camera preview. null
onEntitySaving EntitySaveCallback? The callback type define for saving entity in the viewer. null
onError CameraErrorHandler? The error handler when any error occurred during the picking process. null
onXFileCaptured XFileCapturedCallback? The callback type definition when the XFile is captured by the camera. null

Using custom States #

All user interface can be customized through custom States, including:

  • CameraPickerState
  • CameraPickerViewerState

After override States, pass them through the picking method, more specifically:

  • CameraPicker.pickFromCamera(createPickerState: () => CustomCameraPickerState());
  • CameraPickerViewer.pushToViewer(..., createViewerState: () => CustomCameraPickerViewerState());

Frequently asked question 💭 #

Why the orientation behavior is strange on iOS? #

Currently, the preview is not correctly synced on the iOS. You can find more details in this issue: https://github.com/flutter/flutter/issues/89216 . Other than that, please submit issues to describe your question.

Contributors ✨ #

Thank goes to these wonderful people (emoji key):


Alex Li

💻 🎨 📖 💡 🤔 🚧 💬 👀

Caijinglong

💡 🤔

Lael

📖

mjl0602

💻 🤔

AliasWang

💻 🤔

leftcoding

🐛

Luong The Vinh

💻

luomo-pro

️️️️♿️ 🐛

LeonardoZhu

💻

This project follows the all-contributors specification. Contributions of any kind welcome!

3
likes
0
pub points
53%
popularity

Publisher

verified publishercomm.qq.com

A camera picker based on WeChat's UI which is a separate runnable extension to wechat_assets_picker.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

camera, camera_platform_interface, flutter, path, photo_manager, system_info2, video_player

More

Packages that depend on tencent_wechat_camera_picker