2010-02-22 103 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对象。

相关问题