2010-11-22 52 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。 (对不起,我无法编辑以前的消息,这是另一个帐户。)