2010-02-22 509 views

回答

4

您可以使用System Sound Services打短的聲音:

CFBundleRef mainBundle = CFBundleGetMainBundle(); 
CFURLRef soundFileURLRef = CFBundleCopyResourceURL(mainBundle, CFSTR("filename"), CFSTR("aiff"), NULL); 
SystemSoundID soundId; 
AudioServicesCreateSystemSoundID(soundFileURLRef, &soundId); 
AudioServicesPlaySystemSound(soundId); 
CFRelease(soundFileURLRef) 

的.caf,.AIFF和.wav格式的支持。

+0

謝謝,它編譯偉大。我想我讀了這個聲音在模擬器上不起作用......這是真的嗎? – androidnotgenius 2010-02-22 08:32:54

+0

不要這麼認爲 - 模擬器應該沒問題。 – dstnbrkr 2010-02-22 15:59:33

+0

好吧,我已經將這個加載到我的iPhone上,聲音仍然不起作用。我使用了.wav和.aif文件格式。我已經包含了「AudioToolbox/AudioToolbox.h」。任何想法,使這項工作? – androidnotgenius 2010-02-22 18:33:18

1

沒有足夠的聲望來通過@dstnbrkr對解決方案發表評論,所以我會將其作爲答案發布。

在上面的示例中,CFURLRef soundFileURLRef未被釋放。

在最後一行(AudioServicesPlaySystemSound(soundId);)之後調用CFRelease(soundFileURLRef)來釋放Core Foundation對象。

相關問題