위챗 디자인을 영감으로 한 카메라 선택 인터페이스를 제공하는 플러터 패키지로, 사진과 동영상을 촬영할 때 매끄럽고 익숙한 경험을 제공합니다. wechat_assets_picker의 독립적인 확장 기능으로 작동하여 개발자가 최소한의 노력으로 정교한 카메라 UI를 앱에 통합할 수 있도록 합니다. 이 피커는 안드로이드와 iOS 플랫폼을 모두 지원하며, 다양한 장치에서 일관된 동작을 보장합니다. 직관적인 미디어 캡처 워크플로우가 필요한 앱에 적합합니다.
A camera picker for Flutter projects based on WeChat's UI,
which is also a separate runnable extension to the
wechat_assets_picker.
The current WeChat version that UI is based on: 8.0.49.
UI designs will be updated at any time following the WeChat update.
See the Migration Guide to learn how to migrate between breaking changes.
Versions compatibility
The package only guarantees that it will work on the stable version of Flutter.
We won't update it in real-time to align with other channels of Flutter.
3.3.0
3.16.0
3.22.0
4.4.0+
❌
✅
✅
4.2.0+
❌
✅
❌
4.0.0+
✅
❌
❌
Package credits
The package is built from these wonderful packages.
Their implementation should be relatively stable in the package.
If you've found any issues related to them when using the picker,
submit issues to our issue tracker first.
♿ Complete a11y support with TalkBack and VoiceOver
♻️ Fully implementable with States override
🎏 Fully customizable theme based on ThemeData
💚 Completely WeChat style (even more)
⚡️ Adjustable performance with different configurations
📷 Picture capturing support
🎥 Video recording support
⏱ Duration limitation support
🔍 Scale when recording support
☀️ Exposure adjust support
🔍️ Scale with pinch support
💱 i18n support
⏪ RTL language support
🖾 Foreground custom widget builder support
🕹️ Intercept saving with a custom process
Screenshots 📸
READ THIS FIRST ‼️
Be aware of the below notices before you start anything:
Due to understanding the differences and limitations of a single document,
documents will not cover all the contents.
If you find nothing related to your expected features and cannot understand about concepts,
run the example project and check every option first.
It has covered 90% of regular requests with the package.
The package deeply integrates with the photo_manager plugin,
make sure you understand these two concepts as much as possible:
When using NSPhotoLibraryAddUsageDescription on iOS,
it requires using onEntitySaving or onXFileCaptured to handle the captured file,
an AssetEntity is not available in this circumstance,
obtaining that asset with its ID will lead to a crash.
When you're picking assets, the package will obtain the Locale?
from your BuildContext, and return the corresponding text delegate
of the current language.
Make sure you have a valid Locale in your widget tree that can be accessed
from the BuildContext. Otherwise, the default Chinese delegate will be used.
Embedded text delegates languages are:
简体中文 (default)
English
Tiếng Việt
If you want to use a custom/fixed text delegate, pass it through the
CameraPickerConfig.textDelegate.
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 ✨
Thanks goes to these wonderful people (emoji key):