适用于Mac和Windows的audio框架

我意识到之前我曾经提过一个类似于这个问题的问题,但是我想要做什么的计划已经有了某种程度,参数已经有所不同了。

基本上,我正在寻找在Mac和Windows上解码和输出audio的最佳select。 理想情况下,两个平台之间所需的代码没有区别。 我只是希望能够传递一个文件path或HTTP URL,并让它播放audio,并具有暂停,search等function。

必须能够在不依赖操作系统的情况下解码MP3和AAC(如Phonon for Qt,完全依赖于操作系统)。 除此之外的任何其他编解码器将是一个非常好的奖金。

我已经看过像libavcodec这样的东西,据说可以解码任何东西,但一直没能弄清楚如何让它工作。 到目前为止,我所看到的库似乎也准备好了Mac和Linux或Windows和Linux,但不是Mac Windows。

它不需要是开源的,但是如果需要在商业产品中使用的话。 只要它不是太昂贵和易于使用,我可以用许可的东西。

最后,虽然C / C ++将是首选,但如果有什么可以与C#/ Mono一起工作,那也没关系。

任何build议的东西,将为此工作?

我为Mac和Windows创建了一个名为“Crosstalk”的C ++音频库。

串扰是一个C ++音频引擎,允许您实时创建和路由音频系统。 引擎负责管理所有的音频路由,并为您提供创建系统组件的简单平台(例如,连接到“低通滤波器”的“MP3解码器”组件连接到“音频设备”和“文件记录器”)。

这非常容易使用。 以下是如何播放mp3文件的示例(这些组件是随引擎提供的):

XtSystem system; XtMp3Decoder mp3Decoder; XtAudioDevice audioDevice; long md = system.addComponent(&mp3Decoder); long ad = system.addComponent(&audioDevice); system.connOutToIn(md,0,ad,0); system.connOutToIn(md,1,ad,1); mp3Decoder.loadFile("../05 Tchaikovski-Swan Lake-Scene.mp3"); mp3Decoder.play(); 

Crosstalk中包含Xcode和Visual Studio项目的示例。

您可以下载串扰,并在此处查看API文档和许可详细信息: http : //www.adaptaudio.com/Crosstalk

编辑(01-12-2012):

串扰已被一个名为“ DSPatch ”的开源项目所取代。 DSPatch本质上是Crosstalk背后的路由引擎的升级版本,不再仅限于音频处理。 DSPatch允许您创建和路由几乎任何类型的可以想象的流程链,并免费供个人使用和专有使用:)

开箱即解MP3和AAC

我不知道任何音频库,这很容易做到这一点。 问题是有关MP3解码的许可问题。

我在这篇文章中讨论了一些选项,他们对Windows / Mac OS X很好,但我不确定他们是否有C#绑定。

如果你愿意自己写绑定,你可能会对libaudiodecoder感兴趣:

一个C ++跨平台的MP3 / AAC / WMA / WAV解码器。

它带有一个示例 ,显示如何通过PortAudio在Windows / Mac上播放歌曲。