Objective-C в моно - PullRequest
       20

Objective-C в моно

2 голосов
/ 22 ноября 2010

У меня есть приложение .NET, которое я хочу портировать на OSX. До сих пор я использовал DirectShow DLL для работы с веб-камерой. Могу ли я использовать Objective-C DLL для Mono? Как? Я новичок на Mac. Существует ли для этого решение (обработка веб-камеры)? Есть ли лучшее решение?

Ответы [ 4 ]

3 голосов
/ 24 ноября 2010

Для этого вы хотите использовать инфраструктуру QTKit, в частности, вы можете использовать QTCaptureView в качестве многоразового NSView, который вы можете встроить в существующее окно или в приложение для фактического захвата видео.

Я только что добавил поддержку для захвата привязок MonoMac несколько минут назад после того, как увидел ваш вопрос, поэтому вам нужно будет немного поработать.

Шаги:

  1. Установите Mono, MonoDevelop и надстройку MonoMac, как описано здесь: 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.Учебник, показывающий использование API в Objective-C, находится здесь:

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/QTKitApplicationTutorial/BuildingaSimpleQTKitCaptureApplication/BuildingaSimpleQTKitCaptureApplication.html#//apple_ref/doc/uid/TP40008155-CH8-SW1

Вы можете просто использовать эквивалентные версии в C #

0 голосов
/ 28 декабря 2010

Я попробовал принятый код в XCode, и когда я попытался портировать на Monodevelop, несколько классов отсутствуют, например.QTCaputureSession, QTCaputreDeviceInput, CVimagebuffer.(Извините, я не могу редактировать мои предыдущие сообщения, это другой аккаунт.)

0 голосов
/ 23 ноября 2010

MonoMac - это всего лишь одна альтернатива. Есть Monobjc, CocoSharp, NObjective, MObjc / MCocoa и ObjC # (я не могу выбирать между ними). Все эти «мосты» между Mono и Cocoa, что означает, что вы можете использовать API-интерфейс Cocoa в приложении Mono. Но я не хочу использовать API напрямую. Я просто хочу динамически связанную библиотеку, которая предоставляет мне некоторую функцию для обработки веб-камеры (как я уже говорил, я делал это до сих пор в Windows). Другими словами: мне нужна обертка в Mono для QTKit.

PS: Если я переписываю приложение в object-c, это означает несколько месяцев и удвоит работу в будущем, когда приложение будет расти. Я люблю object-c, но ненавижу ненужную работу.

0 голосов
/ 22 ноября 2010

Я не уверен, что вы подразумеваете под "объект-DLL для Mono".

Ваш самый лучший подход - изучить платформу, на которую вы нацелены, и перенести только логику и общую архитектуру.

Для доступа к камерам, микрофонам, линейным входам и т. Д. В Mac OS X используйте QTKit (Quicktime Kit).Это невероятно просто настроить вид веб-камеры, записывать в файлы, захватывать фреймы и т. Д. Он встроен и предназначен для того, чтобы делать подобные вещи в основном перетаскиваемыми для разработчиков.

...