اللغة: الانجليزية | 中文
منتقي الكاميرا لمشاريع Flutter استنادًا إلى واجهة مستخدم WeChat، وهو أيضًا امتداد منفصل قابل للتشغيل لـ wechat_assets_picker.
إصدار WeChat الحالي الذي تعتمد عليه واجهة المستخدم: 8.0.49
. سيتم تحديث تصميمات واجهة المستخدم في أي وقت بعد تحديث WeChat.
راجع دليل الترحيل لمعرفة كيفية الترحيل بين التغييرات العاجلة.
تضمن الحزمة فقط أنها ستعمل على الإصدار الثابت من Flutter . لن نقوم بتحديثه في الوقت الفعلي للتوافق مع قنوات Flutter الأخرى.
2.8.0 | 3.3.0 | 3.16.0 | |
---|---|---|---|
4.2.0+ | ✅ | ||
4.0.0+ | ✅ | ||
3.0.0+ | ✅ |
تم بناء الحزمة من هذه الحزم الرائعة.
اسم | سمات |
---|---|
photo_manager | التجريدات الأساسية وإدارة الأصول. |
آلة تصوير | يلتقط الصور ومقاطع الفيديو. |
video_player | تشغيل ملفات الفيديو والتسجيلات الصوتية في المقابل. |
يجب أن يكون تنفيذها مستقرًا نسبيًا في الحزمة. إذا وجدت أي مشكلات متعلقة بها عند استخدام أداة الاختيار، فأرسل المشكلات إلى متتبع المشكلات الخاص بنا أولاً.
State
المخصصةState
ThemeData
![]() | ![]() | ![]() | ![]() | ![]() |
---|
كن على علم بالإشعارات التالية قبل البدء بأي شيء:
AssetEntity
AssetPathEntity
عندما تكون لديك أسئلة حول واجهات برمجة التطبيقات والسلوكيات ذات الصلة، راجع مستندات واجهة برمجة التطبيقات الخاصة بـ photo_manager للحصول على مزيد من التفاصيل.
يتم تفصيل معظم الاستخدامات وتغطيتها بالمثال. يرجى الاطلاع على المثال بعناية قبل أن يكون لديك أي أسئلة.
إذا حصلت على خطأ resolve conflict
عند تشغيل flutter pub get
، فيرجى استخدام dependency_overrides
لإصلاحه.
قم بتشغيل flutter pub add wechat_camera_picker
أو أضف wechat_camera_picker
إلى تبعيات pubspec.yaml
يدويًا.
dependencies :
wechat_camera_picker : ^latest_version
أحدث نسخة مستقرة هي:
أحدث إصدار للتطوير هو:
اتبع دليل الإعداد التفصيلي هذا قبل التشغيل:
NSPhotoLibraryAddUsageDescription
على نظام التشغيل iOS، فإنه يتطلب استخدام onEntitySaving
أو onXFileCaptured
للتعامل مع الملف الملتقط، ولا يتوفر AssetEntity
في هذه الحالة، وسيؤدي الحصول على هذا الأصل بمعرفه إلى حدوث عطل.ثم قم باستيراد الحزمة في الكود الخاص بك:
import 'package:wechat_camera_picker/wechat_camera_picker.dart' ;
عند اختيار الأصول، ستحصل الحزمة على Locale?
من BuildContext
الخاص بك، وقم بإرجاع مندوب النص المقابل للغة الحالية. تأكد من أن لديك Locale
صالحة في شجرة عناصر واجهة المستخدم الخاصة بك والتي يمكن الوصول إليها من BuildContext
. وإلا، سيتم استخدام المفوض الصيني الافتراضي.
لغات مندوبي النص المضمن هي:
إذا كنت تريد استخدام مندوب نص مخصص/ثابت، قم بتمريره عبر CameraPickerConfig.textDelegate
.
final AssetEntity ? entity = await CameraPicker . pickFromCamera (context);
استخدم CameraPickerConfig
لمزيد من سلوكيات الانتقاء.
final AssetEntity ? entity = await CameraPicker . pickFromCamera (
context,
pickerConfig : const CameraPickerConfig (),
);
الحقول في CameraPickerConfig
:
اسم | يكتب | وصف | القيمة الافتراضية |
---|---|---|---|
تمكين التسجيل | bool | ما إذا كان بإمكان المنتقي تسجيل الفيديو أم لا. | false |
فقطتمكينالتسجيل | bool | ما إذا كان بإمكان المنتقي تسجيل الفيديو فقط أم لا. متاح فقط عندما يكون enableRecording true . | false |
تمكينTapRecording | bool | ما إذا كان السماح بالسجل يمكن أن يبدأ بنقرة واحدة. متاح فقط عندما يكون enableRecording true . | false |
تمكين الصوت | bool | ما إذا كان يجب على المنتقي تسجيل الصوت أم لا. متاح فقط مع التسجيل. | true |
EnableSetExposure | bool | ما إذا كان يمكن للمستخدمين ضبط نقطة التعرض من خلال النقر. | true |
تمكين التعرضControlOnPoint | bool | ما إذا كان يمكن للمستخدمين ضبط التعرض وفقًا للنقطة المحددة. | true |
تمكينPinchToZoom | bool | ما إذا كان يمكن للمستخدمين تكبير الكاميرا بالضغط. | true |
تمكينPullToZoomInRecord | bool | ما إذا كان يمكن للمستخدمين التكبير عن طريق السحب لأعلى عند تسجيل الفيديو. | true |
تمكينScaledPreview | bool | ما إذا كان يجب تغيير حجم معاينة الكاميرا أثناء عمليات الالتقاط. | false |
يجب حذف ملف Preview | bool | ما إذا كان سيتم حذف ملف المعاينة عند فتحه. | false |
يجب أن يكون AutoPreviewVideo | bool | ما إذا كان يجب تشغيل الفيديو على الفور في المعاينة. | true |
الحد الأقصى لمدة التسجيل | Duration? | الحد الأقصى لمدة عملية تسجيل الفيديو. | const Duration(seconds: 15) |
الحد الأدنى لمدة التسجيل | Duration | الحد الأدنى لمدة عملية تسجيل الفيديو. | const Duration(seconds: 1) |
سمة | ThemeData? | بيانات الموضوع للمنتقي. | CameraPicker.themeData(wechatThemeColor) |
textDelegate | CameraPickerTextDelegate? | مندوب النص الذي يتحكم في النص في الأدوات. | CameraPickerTextDelegate |
الدقةPreset | ResolutionPreset | القرار الحالي للكاميرا. | ResolutionPreset.ultraHigh |
videoQuarterTurns | int | يجب تدوير عدد الدورات الربعية في اتجاه عقارب الساعة لعرض الكاميرا. | 0 |
imageFormatGroup | ImageFormatGroup | يصف إخراج تنسيق الصورة الخام. | ImageFormatGroup.unknown |
PreferredLensDirection | CameraLensDirection | ما هو اتجاه العدسة المفضل عند استخدام الكاميرا لأول مرة. | CameraLensDirection.back |
lockCaptureOrientation | DeviceOrientation? | ما إذا كان ينبغي قفل الكاميرا على الاتجاه المحدد أثناء الالتقاط. | باطل |
foregroundBuilder | ForegroundBuilder? | أداة إنشاء عناصر واجهة المستخدم الأمامية والتي ستغطي معاينة الكاميرا بأكملها. | باطل |
معاينةTransformBuilder | PreviewTransformBuilder? | منشئ القطعة الذي سيحول معاينة الكاميرا. | باطل |
onEntitySaving | EntitySaveCallback? | يحدد نوع رد الاتصال لحفظ الكيان في العارض. | باطل |
خطأ | CameraErrorHandler? | معالج الأخطاء عند حدوث أي خطأ أثناء عملية الانتقاء. | باطل |
onXFileCaptured | XFileCapturedCallback? | تعريف نوع رد الاتصال عندما تلتقط الكاميرا ملف XFile. | باطل |
onMinimumRecordDurationNotMet | VoidCallback? | رد الاتصال عند عدم استيفاء التسجيل للحد الأدنى لمدة التسجيل. | باطل |
onPickConfirmed | void Function(AssetEntity)? | رد الاتصال عند التقاط الصورة أو تأكيد الفيديو. | باطل |
PermissionRequestOption | PermissionRequestOption? | خيار طلب الإذن عند حفظ الملف الملتقط باستخدام حزمة photo_manager . | باطل |
State
المخصصة يمكن تخصيص جميع واجهات المستخدم من خلال State
المخصصة، بما في ذلك:
CameraPickerState
CameraPickerViewerState
بعد تجاوز State
، قم بتمريرها عبر طريقة الانتقاء، وبشكل أكثر تحديدًا:
CameraPicker.pickFromCamera(createPickerState: () => CustomCameraPickerState());
CameraPickerViewer.pushToViewer(..., createViewerState: () => CustomCameraPickerViewerState());
في الوقت الحالي، لا تتم مزامنة المعاينة بشكل صحيح على نظام التشغيل iOS. يمكنك العثور على مزيد من التفاصيل في هذا العدد: Flutter/flutter#89216 . بخلاف ذلك، يرجى إرسال المشكلات لوصف سؤالك.
شكرًا لهؤلاء الأشخاص الرائعين (مفتاح الرموز التعبيرية):
اليكس لي ؟ ؟ ؟ ؟ | كاجينجلونج ؟ | ليل | mjl0602 ؟ | الاسم المستعار وانغ ؟ | com.leftcoding ؟ | لونج ذا فينه |
luomo-pro ️️️️♿️ ؟ | ليوناردوتشو | نجوين فوك لوي ؟ | عاموس ؟ | تي يو يونيو |
يتبع هذا المشروع مواصفات جميع المساهمين. المساهمات من أي نوع هي موضع ترحيب!