我可以使用monomac的OSX AUGraph吗?

时间:2010-10-07 09:02:04

标签: macos audio monomac

我有一个用C#编写的mp3播放应用程序,我想将其移植到OSX。

由于它使用DirectShow播放mp3,我意识到我需要重新编码音频播放部分。我找到了使用AUGraph的Apple的playfile示例。

http://www.mono-project.com/MonoMac的Binding Cocoa部分提到“更简单的AudioToolBox API”。

任何人都可以指出我使用C#中的AudioToolBox或最好使用C#中的AUGraph的示例代码。

将我的代码移植到monomac是最好的方法,还是我会更好地采用目标C中的插入和重新编码。

3 个答案:

答案 0 :(得分:1)

这些是使用与MonoMac相同的API使用AudioUnit的一些示例,除了这些示例使用MonoTouch定位iPhone:

https://github.com/migueldeicaza/MonoTouch.AudioUnit

设置AudioUnit有点麻烦,如果您只想播放MP3文件而不进行任何低级处理或应用效果,您可以使用MonoMac.AppKit.NSSound API。

答案 1 :(得分:0)

您链接的页面确实表示AudioToolbox(即CoreAudio)已完全绑定。我不知道任何样本,但输入C代码应该不难。

或者你可以进入mono-osx邮件列表并请求绑定QTKit,甚至自己做绑定。我听说MonoMac绑定生成器可以很容易地绑定Objective-C API。

使用现有的C#代码和知识会更快更容易,即使您必须自己做一些绑定。

答案 2 :(得分:-1)

AUGraph是Core Audio的一部分。它用于组合音频单元的图形,可用于音频播放。 Core Audio是一个具有C API的低级框架 也许你可以使用Mono的QTKit(围绕QuickTime的可可包装)。

在我看来,使用平台“原生”技术始终是最好的方法。 (对于Mac OS X,这将是Objective-C和Cocoa)。 Apple有一个很好的示例,展示了如何使用QTKit创建媒体播放器: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/QTKitApplicationTutorial/Introduction/Introduction.html%23//apple_ref/doc/uid/TP40008155-CH1-SW1