البرمجة

تحديث استخدام AVCaptureDeviceDiscoverySession

تحديثات نظام التشغيل iOS دائمًا ما تجلب معها تغييرات في الطرق التي يتم فيها التعامل مع الميزات والوظائف المختلفة، وهذا يشمل أيضًا كيفية الوصول إلى كاميرا الجهاز والصوت المرتبط به. في iOS 10 وبعده، تم تقديم AVCaptureDeviceDiscoverySession كبديل عن AVCaptureDevice.devices() الذي أصبح قديمًا وتمت إزالته. لذا، يجب عليك تحديث الكود الخاص بك لاستخدام الطريقة الجديدة للوصول إلى الأجهزة.

لتحقيق ذلك، يجب عليك استخدام AVCaptureDeviceDiscoverySession. هذه الطريقة تسمح لك بتحديد مجموعة من الأجهزة بناءً على معايير محددة، مثل نوع الوسائط المتعددة (الفيديو أو الصوت) وموقع الكاميرا (الخلفية أو الأمامية).

للبدء، يمكنك استخدام AVCaptureDeviceDiscoverySession للحصول على كافة أجهزة الفيديو والصوت المتوفرة على الجهاز، ومن ثم فرزها وتعيينها وفقًا لاحتياجاتك. في الكود الذي قمت بتقديمه، يمكن أن تكون الخطوات الأساسية كالتالي:

swift
let discoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera], mediaType: AVMediaType.video, position: .unspecified) for device in discoverySession.devices { if device.position == .back { self.backCameraVideoCapture = device } else if device.position == .front { self.frontCameraVideoCapture = device } } if let audioDevice = AVCaptureDevice.default(for: AVMediaType.audio) { self.audioCapture = audioDevice }

في هذا الكود، نبدأ بإنشاء AVCaptureDeviceDiscoverySession حيث نحدد أننا نريد الكاميرا الرئيسية (الخلفية) ونوع الوسائط المتعددة (الفيديو). ثم نقوم بتحديد الأجهزة التي تم العثور عليها وفقًا لهذه المعايير وتعيينها إلى المتغيرات المناسبة.

يُلاحظ أننا استخدمنا AVCaptureDevice.default للحصول على جهاز الصوت الافتراضي، حيث لا يتوفر دائمًا جهاز صوت في كل جهاز، ولكن عندما يكون متاحًا، يمكننا استخدام هذه الطريقة للحصول عليه.

باستخدام هذه الطريقة، يمكنك تجنب الأخطاء المحتملة المرتبطة بالاستخدام المتكرر للكود القديم الذي تم تجاهله. وبهذا، ستتمكن من تحديث تطبيقك بسلاسة وضمان توافقه مع أحدث إصدارات iOS دون مشاكل.

المزيد من المعلومات

بالطبع، دعني أوضح بعض النقاط الإضافية وأوفر المزيد من المعلومات حول كيفية استخدام AVCaptureDeviceDiscoverySession بشكل أكثر تفصيلًا.

AVCaptureDeviceDiscoverySession هو عبارة عن تمثيل لمجموعة من الأجهزة التي تلبي معايير محددة. يمكنك تخصيص معايير البحث للتحديد الدقيق للأجهزة التي تحتاج إليها. هذه المعايير تشمل أنواع الأجهزة (مثل الكاميرا الأساسية أو الأمامية) ونوع الوسائط المتعددة (مثل الفيديو أو الصوت).

في الكود السابق، قمنا بإنشاء AVCaptureDeviceDiscoverySession مع تحديد أننا نريد الكاميرا الأساسية (الخلفية) ونوع الوسائط المتعددة الفيديو. يمكنك تعديل هذه المعايير وفقًا لاحتياجاتك الخاصة. على سبيل المثال، إذا كنت بحاجة إلى الوصول إلى الكاميرا الأمامية، يمكنك تغيير قيمة position إلى .front.

بعد إنشاء AVCaptureDeviceDiscoverySession، يتم الحصول على الأجهزة المتوافقة من خلال خاصية devices. بعد ذلك، يمكنك تحديد الأجهزة التي تحتاج إليها وتخزينها في المتغيرات المناسبة.

من الجدير بالذكر أنه يمكنك استخدام AVCaptureDevice.default للحصول على جهاز الصوت الافتراضي مباشرة دون الحاجة إلى AVCaptureDeviceDiscoverySession. هذا يسهل الوصول إلى الصوت بشكل أكثر سلاسة.

أخيرًا، بالنسبة لرسالة الخطأ التي تلقيتها (-11800)، تُشير هذه الرسالة عادةً إلى مشكلة في تشغيل الجهاز أو الوسائط المتعددة. قد يكون السبب في هذا الحالة تصرفات غير متوقعة من النظام أو مشكلات في البرمجة. يجب عليك مراجعة رمزك والتأكد من عدم وجود أخطاء في الاستخدام الصحيح للأجهزة والوسائط المتعددة.

باستخدام AVCaptureDeviceDiscoverySession والتحديثات الحديثة في كودك، يمكنك تجنب الأخطاء المتعلقة بالأساليب المهملة وضمان توافق تطبيقك مع أحدث إصدارات نظام التشغيل iOS، مما يؤدي إلى تجربة مستخدم أفضل وتطوير أكثر فعالية للتطبيقات الخاصة بك.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر