C++ 通过M-Audio ProFire 610进行声音输出

C++ 通过M-Audio ProFire 610进行声音输出,c++,macos,audio,core-audio,C++,Macos,Audio,Core Audio,我在工作中接到一个任务,要创建一个能够将声音引导到声卡不同输出通道的系统。我们正在使用,它有8个通道输出,并通过火线连接。我们也在使用MacMini作为主机服务器,我将在Xcode中工作 这是我正在构建的内容的示意图: 起初我认为java将足够用于这个项目,但是后来我发现java不能把声音推到声卡的默认输出通道之外,所以我决定切换到C++。问题是,我是一名web开发人员,在这门语言方面没有任何经验——这就是为什么我寻求更有经验的开发人员的帮助 我为ios4找到了一个解决方案,但不确定有多少可以

我在工作中接到一个任务,要创建一个能够将声音引导到声卡不同输出通道的系统。我们正在使用,它有8个通道输出,并通过火线连接。我们也在使用MacMini作为主机服务器,我将在Xcode中工作

这是我正在构建的内容的示意图:

起初我认为java将足够用于这个项目,但是后来我发现java不能把声音推到声卡的默认输出通道之外,所以我决定切换到C++。问题是,我是一名web开发人员,在这门语言方面没有任何经验——这就是为什么我寻求更有经验的开发人员的帮助

我为ios4找到了一个解决方案,但不确定有多少可以用于我的项目。我也觉得有点困惑


我应该采取什么步骤来完成这项任务?我应该使用什么框架?有代码示例吗?我正在寻找任何帮助、提示和技巧——以及任何有助于我完成此项目的东西。

主要API位于
CoreAudio/AudioHardware.h

苹果提供的大多数样本/支持代码都是C++。然而,这些API完全是C(不知道这是否对您有帮助)

您将需要访问硬件抽象层(又称HAL),更多详细信息请参阅本文档:


有关(相当大量的)其他示例/用法,请参见
$DEVELOPER\u DIR/Extras/CoreAudio/

如果您只是在寻找音频传递,您可能需要查看一些已经构建的东西,比如创建一个看起来和工作起来都像真实设备的软件音频设备(您可以将其设置为应用程序的默认输出),然后允许您将每个频道路由到所需的任何位置(包括到其他应用程序)


如果你想自己做,当然要用C++,因为有很多教程(我从CPLUS PLUS .com上学到的).CoreAudio是Justin提到的低级C/C++接口,但它确实很难学习和使用。提供了一个简单得多的API,为此我在Mac实现上做了一些工作。查看那里的教程,为默认输入和输出制作一些类似的东西,然后使用

PaMacCore\u SetupChannelMap进行通道映射,如前所述。您需要调用它两次,一次用于输入流,一次用于输出流。如果您需要更多建议,请加入PortAudio的邮件列表!祝您好运!

+1仔细回答一个问题,表明您已尝试自己回答它。PortAudio看起来非常有希望。它确实比核心音频和文档更简单n似乎更全面。我将阅读他们的教程,希望能在我的项目中使用此API。我所问的问题只是我正在创建的整个系统的一小部分,因此我认为我将使用PortAudio而不是Jack,这对我来说似乎有点困惑。此外,使用自己的API实现总是更有趣,对吗非常感谢你的提示,这是非常有用的。现在我已经用C++工作了几天,我终于能够理解核心音频的样本文件中发生了什么。它看起来像一个非常强大的库。谢谢你的回复,它非常有用。@ RKRV。你很受欢迎。很高兴它是有用的。祝你好运。罗ject!