wechat_camera_picker_plus 1.0.3
wechat_camera_picker_plus: ^1.0.3 copied to clipboard
A camera picker for Flutter projects based on WeChat's UI, which is also a separate runnable extension to the wechat_assets_picker_plus.
Flutter WeChat Camera Picker #
A camera picker based on WeChat's UI which is a separate runnable extension to
wechat_assets_picker_plus.
The package based on camera for camera functions
and photo_manager for asset implementation.
đˇ Screenshots #
![]() |
![]() |
![]() |
![]() |
![]() |
|---|
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
đĻ Installation #
Add the package to your pubspec.yaml:
dependencies:
wechat_camera_picker_plus: ^latest_version
dependencies:
flutter pub get
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 #
Import the package:
import 'package:wechat_camera_picker_plus/wechat_camera_picker_plus.dart';
Usage đ #
Record Video:
final entity = await CameraPicker.pickFromCamera(
Get.context!,
pickerConfig: CameraPickerConfig(
enableRecording: true,
onlyEnableRecording: true,
resolutionPreset: ResolutionPreset.high,
maximumRecordingDuration: const Duration(seconds: 60),
minimumRecordingDuration: const Duration(seconds: 7),
enableTapRecording: true,
permissionRequestOption: PermissionRequestOption(
androidPermission:
AndroidPermission(type: RequestType.all, mediaLocation: true),
),
textDelegate: EnglishCameraPickerTextDelegate(),
onMinimumRecordDurationNotMet: () {
'Minimum recording duration is 7 seconds'.errorToast();
},
),
);
final file = await entity?.file;
Take Picture:
final entity = await CameraPicker.pickFromCamera(
Get.context!,
pickerConfig: CameraPickerConfig(
enableRecording: false,
resolutionPreset: ResolutionPreset.high,
permissionRequestOption: PermissionRequestOption(
androidPermission:
AndroidPermission(type: RequestType.all, mediaLocation: true),
),
textDelegate: EnglishCameraPickerTextDelegate(),
),
);
final file = await entity?.file;
đ 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.
đ License #
This project is licensed under the MIT License. See the LICENSE file for details.
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!
đ Author #
Made with â¤ī¸ by Deepak.





