2010-11-22 61 views
2

我有一個.NET應用程序,我想將它移植到OSX上。到目前爲止,我使用DirectShow DLL進行WebCam處理。我可以使用Mono的Objective-C DLL嗎?怎麼樣?我是Mac上的新手。有沒有現有的(WebCam處理)解決方案?有更好的解決方案嗎?Mono中的Objective-C

回答

3

你想使用QTKit框架來做到這一點,特別是你可以使用QTCaptureView作爲一個可重用的NSView,你可以嵌入現有的窗口或應用程序中進行實際的視頻捕獲。

我剛剛在看到您的問題後幾分鐘前添加了對捕獲到MonoMac綁定的支持,因此您需要做一些工作。

步驟:

  1. 這裏描述安裝Mono,MonoDevelop的和的MonoMac插件:http://mono-project.com/MonoMac

  2. 下載的MonoMac和MacCore最新消息透露從GitHub:http://github.com/mono/maccorehttp://github.com/mono/monomac

  3. 通過進入monomac/src目錄並鍵入「make update」將MonoMac.dll更新到最新版本

在這一點上,您應該能夠像MonView其他NSView一樣在您的MonoMac應用程序中使用QTCaptureView。顯示使用的Objective-C的API的教程是在這裏:

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

您可以只使用相當於版本在C#中

0

我不確定你的意思是「對於單聲道的對象-C DLL」。

你絕對最好的方法是學習你的目標平臺,並且只移植邏輯和通用架構。

要在Mac OS X上訪問攝像頭,麥克風,線路等,請使用QTKit(Quicktime Kit)。設置網絡攝像機視圖,記錄文件,抓取幀等是非常簡單的。它內置並設計用於使開發人員能夠進行大部分拖放操作。

+0

編號.NET,DLL等是Windows技術/ Windows API。再次說明:您需要了解您的目標平臺。這是沒有辦法的。用於連接網絡攝像頭的適當的Mac高級API是QTKit。較低級別是完整的QuickTime框架。 – 2010-11-22 17:21:04

+0

感謝您的幫助。我的意思是:我想要一個dll寫在object-c中的東西,它使用OSX的API(用於WebCam處理),而我的Mono程序(OSX上的.NET的克隆)使用它。這次我使用了DirectX/Windows + .NET,現在我想要QuictTime/OSX + Mono。 – bsebi 2010-11-22 17:26:10

+0

對不起,這是我的誤解。從MonoMac站點:「與MonoTouch不同,MonoMac不是對所有Cocoa API的完整綁定......」該列表不包括QTKit或QuickTime。 http://www.mono-project.com/MonoMac – 2010-11-22 17:33:20

0

MonoMac只是一個選擇。有Monobjc,CocoSharp,NObjective,MObjc/MCocoa和ObjC#(我不能在它們之間選擇)。這些都是Mono和Cocoa之間的「橋樑」,意味着你可以在Mono應用程序中使用Cocoa API。但我不想直接使用API​​。我只想要一個dinamically連接的庫,它爲WebCam處理提供了一些功能(正如我所說的,我在Windows上完成了這個任務)。換句話說:我需要在Mono中爲QTKit封裝。 PS:如果我在對象c中重寫應用程序,這意味着幾個月,並且在將來應用程序將增長時將進行雙重工作。我喜歡object-c,但我討厭不必要的工作。

0

我試圖在Xcode中接受的代碼,當我試圖端口Monodevelop,幾個類缺失,例如。 QTCaputureSession,QTCaputreDeviceInput,CVimagebuffer。 (對不起,我無法編輯以前的消息,這是另一個帳戶。)