Objective-C в Mono
-
27-09-2019 - |
Вопрос
У меня есть .NET-приложение, которое я хочу портировать на OSX.До сих пор я использовал DirectShow DLL для работы с веб-камерой.Могу ли я использовать Objective-C DLL для Mono?Каким образом?Я новичок в Mac.Существует ли существующее решение (для работы с веб-камерой) для этого?Есть ли лучшее решение?
Решение
Вы хотите использовать фреймворк QTKIT, чтобы сделать это, в частности, вы можете использовать QTCaptureView в качестве многоразового NSView, который вы можете встроить в существующее окно или в приложении, чтобы выполнить фактическое захватное видео.
Я только что добавил поддержку для захвата к привязанию Monomac несколько минут назад после того, как я увидел ваш вопрос, поэтому вам нужно будет немного работать.
Шаги:
Установите моно, монодослот и мономак Addin, как описано здесь: http://mono-project.com/monomac.
Скачайте последние источники для Monomac и Maccore из GitHub: http://github.com/mono /maccore. а также http://github.com/mono/monomac.
Обновите Monomac.dll до последней версии, перейдите в каталог Monomac / SRC и набрав «Создание обновления»
На этом этапе вы должны быть в состоянии использовать QTCaptureView в ваших приложениях Monomac, как и любой другой NSView. Учебное пособие, показывающее использование API в Objective-C здесь:
Вы можете просто использовать эквивалентные версии в C #
Другие советы
Я не уверен, что вы подразумеваете под "object-c dll для Mono".
Ваш самый лучший подход - изучить платформу, на которую вы ориентируетесь, и портировать только логику и общую архитектуру.
Для доступа к камерам, микрофонам, линейным входам и т.д.в Mac OS X используйте QTKit (Quicktime Kit).Настроить просмотр веб-камеры, запись в файлы, захват кадров и т.д. Невероятно просто.Он встроен и разработан для того, чтобы сделать подобные вещи в основном перетаскиваемыми для разработчиков.
Monomac - только одна альтернатива. Есть monobjc, cocosharp, nobective, mobjc / mcocoa и objc # (я не могу выбрать между ними). Teese - это «мосты» между моно и какао, что означает, что вы можете использовать Cocoa API в приложении Mono. Но я не хочу использовать API напрямую. Я просто хочу динамически связанную библиотеку, которая предоставляет мне некоторую функцию для обработки веб-камеры (как я уже сказал, я сделал это до этого времени в Windows). Другими словами: мне нужна обертка в моно для Qtkit.
PS: Если я переписал приложение в Object-c, что означает несколько месяцев, и двойная работа в будущем, когда приложение будет расти. Я люблю объект-с, но я ненавижу работать ненужным.
Я попробовал принятый код в Xcode, и когда я попытался портировать в монодослот, несколько классов отсутствуют, например. Qtcaputureucusion, qtcaputredeviceInput, cvimagebuffer. (Извините, я не могу редактировать свои предыдущие сообщения, это еще одна учетная запись.)