سؤال

لدي تطبيق .NET ، والذي أريد نقله إلى OSX. حتى الآن ، استخدمت dll Directshow DLL للتعامل مع كاميرا الويب. هل يمكنني استخدام DLL Objective-C لـ Mono؟ كيف؟ أنا مبتدئ على ماك. هل يوجد حل موجود (معالجة كاميرا ويب) لهذا الغرض؟ هل هناك حل أفضل؟

هل كانت مفيدة؟

المحلول

تريد استخدام إطار QTKIT للقيام بذلك ، على وجه الخصوص ، يمكنك استخدام QTCaptureView باعتباره NSView القابل لإعادة الاستخدام يمكنك تضمينه في نافذة موجودة أو في تطبيق للقيام بالتقاط الفيديو الفعلي.

لقد أضفت للتو دعمًا للالتقاط إلى Monomac Bindings قبل بضع دقائق بعد أن رأيت سؤالك ، لذلك ستحتاج إلى القيام ببعض العمل.

خطوات:

  1. قم بتثبيت Mono و Monodevelop و Monomac Addin كما هو موضح هنا: http://mono-project.com/monomac

  2. قم بتنزيل أحدث مصادر Monomac و MacCore من Github: http://github.com/mono/maccore و http://github.com/mono/monomac

  3. قم بتحديث monomac.dll إلى أحدث إصدار ، من خلال الانتقال إلى دليل Monomac/SRC وكتابة "Make Update"

في هذه المرحلة ، يجب أن تكون قادرًا على استخدام QTCaptureView في تطبيقات Monomac مثل أي NSView آخر. برنامج تعليمي يوضح استخدام واجهة برمجة التطبيقات في Objective-C هنا:

http://developer.apple.com/library/mac/#documentation/cocoa/conceptual/qtkitapplicationtutorial/buildingasimpleqtkitcaptureApplication/BuildingAsimpleQtkitCaptureAction.html#/Apple_Ref/Docef811191311111911111111

يمكنك فقط استخدام الإصدارات المكافئة في C#

نصائح أخرى

لست متأكدًا مما تقصده بـ "A Object-C DLL for Mono".

أفضل نهجك المطلق هو تعلم النظام الأساسي الذي تستهدفه وتنقل فقط المنطق والهندسة المعمارية العامة.

للوصول إلى الكاميرات والميكروفونات والخطوط الإضافية ، إلخ. على Mac OS X ، استخدم QTKIT (مجموعة QuickTime). من السهل للغاية إعداد طريقة عرض كاميرا ويب ، وتسجيل الملفات ، والإطارات ، وما إلى ذلك. إنه مدمج ومصمم لجعل هذا النوع من الأشياء في الغالب السحب والإفلات للمطورين.

Monomac هو مجرد بديل واحد. هناك monobjc ، cocosharp ، nobjective ، mobjc / mcocoa و objc# (لا يمكنني الاختيار بينهما). Theese كلها "جسور" بين أحادي والكاكاو ، ما يعني أنه يمكنك استخدام API الكاكاو في تطبيق أحادي. لكني لا أريد استخدام واجهة برمجة التطبيقات مباشرة. أريد فقط مكتبة مرتبطة بشكل ديناميكي ، والتي توفر لي بعض الوظائف للتعامل مع كاميرا الويب (كما قلت ، لقد فعلت ذلك حتى هذا الوقت على Windows). بمعنى آخر: أحتاج إلى غلاف في أحادي لـ Qtkit.

ملاحظة: إذا قمت بإعادة كتابة التطبيق في Object-C وهذا يعني عدة أشهر ، والعمل المزدوج في المستقبل عندما ينمو التطبيق. أحب Object-C ولكني أكره العمل غير الضروري.

جربت الرمز المقبول في XCode ، وعندما حاولت التنقل إلى Monodevelop ، تكون عدة فئات مفقودة ، على سبيل المثال. QTCaputuresession ، qtcaputredeviceinput ، cvimagebuffer. (آسف ، لا يمكنني تعديل رسائلي السابقة ، وهذا حساب آخر.)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top