2010-11-22 1 views
2

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

ответ

3

Для этого необходимо использовать инфраструктуру 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

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

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

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

+0

№. NET., DLL и т. Д. - это технология Windows/Windows API. Опять же: вам нужно изучить платформу, на которую вы нацеливаете. Это не так.Правильный API высокого уровня Mac для взаимодействия с веб-камерами - QTKit. Нижний уровень - это полная среда QuickTime. – 2010-11-22 17:21:04

+0

Спасибо за помощь. Я имею в виду: я хочу, чтобы dll написала в объекте-c, и использует API OSX (для обработки WebCam), и моя программа Mono (то есть клон .NET на OSX) использует ее. На этот раз я сделал это с DirectX/Windows + .NET, и теперь я хочу QuictTime/OSX + Mono. – bsebi 2010-11-22 17:26:10

+0

Извините, это было мое недоразумение. На сайте MonoMac: «В отличие от MonoTouch, MonoMac не является полным связыванием для всех API-интерфейсов Cocoa ...» В список не включены QTKit или QuickTime. http://www.mono-project.com/MonoMac – 2010-11-22 17:33:20

0

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

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

0

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

 Смежные вопросы

  • Нет связанных вопросов^_^