2012-05-24 120 views
2

我正在更新一個寫於二十年前的C++程序來運行涉及精確啓動和停止聲音的科學實驗。該程序還需要能夠控制播放音量,暫停聲音或在指定位置啓動它們,循環發出指定的次數並控制通道映射。如何在Mac OS X上使用C++播放聲音?

研究人員希望在現代Mac OS X上運行該程序,但我從未在Mac上做過任何開發。在Mac上用C++完成上述目標的最簡單方法是什麼?

CoreAudio似乎太複雜了。 NSSound似乎有我想要的所有功能,但據我所知它只在Objective-C中可用? Objective-C與C++混合嗎?或者我應該看看使用QuickTime SDK?

感謝您的任何幫助。

回答

2

是的,你可以混用Objective-C和C++。這是一種名爲Objective-C++的混合語言。如果NSSound具有您需要的所有功能,請爲它做;如果沒有的話,CoreAudio是最好的選擇。設置和集成QuickTime,OpenAL或FMOD等大型庫會更具挑戰性。

1

是的,你可以混用Objective-C和C++。 Objective-C只是C的一部分,還有一些東西可以在C++之上進行分層,而不是爲了獲得Objective-C++(特別是Objective-C++沒有Objective-C中的C特性,但不包含C++ )。

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

另一個選項可能是OpenAL,它可以作爲另一個內置框架OpenAL.framework使用。