2

我正在更新一个 20 年前编写的 C++ 程序,以运行涉及精确启动和停止声音的科学实验。该程序还需要能够控制播放音量、暂停声音或在指定位置启动声音、循环声音指定次数以及控制通道映射。

研究人员希望在现代 Mac OS X 上运行该程序,但我之前从未在 Mac 上进行过任何开发。在 Mac 上用 C++ 实现上述目标的最简单方法是什么?

CoreAudio似乎太复杂了。NSSound似乎拥有我想要的所有功能,但据我所知,它仅在 Objective-C 中可用?是否可以将 Objective-C 与 C++ 混合使用?还是我应该考虑使用QuickTimeSDK?

谢谢你的帮助。

4

2 回答 2

2

是的,您可以混合使用 Objective-C 和 C++。它是一种称为Objective-C++的混合语言。如果NSSound具有您需要的所有功能,那就去吧;如果没有,CoreAudio 就是要走的路。设置和集成更大的库(如 QuickTime、OpenAL 或 FMOD)将更具挑战性。

于 2012-05-24T15:19:10.917 回答
1

Yes, you can mix Objective-C and C++. Objective-C is just C with some stuff added on, and that same stuff can be layered on top of C++ instead to get Objective-C++ (in particular Objective-C++ doesn't have C features that are in Objective-C but not C++).

Using CoreAudio directly may be useful if you need very low latency.

Another option may be OpenAL, which is available as just another built-in framework, OpenAL.framework.

于 2012-05-24T15:20:03.963 回答