如何在 Mac OS X 上使用C++播放声音

How do I play sounds with C++ on Mac OS X?

本文关键字:C++ 播放声音 Mac OS      更新时间:2023-10-16

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

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

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

感谢您的任何帮助。

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

是的,你可以混合使用Objective-C和C++。Objective-C只是添加了一些东西的C,同样的东西可以叠加在C++之上,而不是得到Objective-C++(特别是Objective-C++没有Objective-C中的C功能,但没有C++)。

如果您需要非常低的延迟,直接使用 CoreAudio 可能会很有用。

另一种选择可能是OpenAL,它可以作为另一个内置框架OpenAL.framework使用。