如何在 iPhone 应用程序中播放声音
Posted
技术标签:
【中文标题】如何在 iPhone 应用程序中播放声音【英文标题】:How to play sounds in iPhone app 【发布时间】:2010-02-22 07:04:46 【问题描述】:我是这个非常令人困惑的 Objective-C 游戏的初学者。
我想在每次按下某个按钮时播放一个很短的音效。
我该怎么做?
我可以使用 mp3 文件吗?还是我必须转换成 wav?
【问题讨论】:
【参考方案1】:您可以使用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 格式。
【讨论】:
谢谢,它编译得很好。我想我读到声音在模拟器上不起作用……这是真的吗? 别这么认为——模拟器应该没问题。 好的,我已将它加载到我的 iPhone 上,但声音仍然无法正常工作。我使用过 .wav 和 .aif 文件格式。我已经包含了“AudioToolbox/AudioToolbox.h”。有什么想法可以完成这项工作吗? 为了让它在模拟器中工作,请转到 Mac 的系统偏好设置并在“声音”首选项的“声音效果”部分中启用“播放用户界面声音效果”跨度> 【参考方案2】:没有足够的声誉来评论 @dstnbrkr 的解决方案,所以我会将其作为答案发布。
在上面的例子中,CFURLRef soundFileURLRef
没有被释放。
在最后一行 (AudioServicesPlaySystemSound(soundId);
) 之后调用 CFRelease(soundFileURLRef)
以释放 Core Foundation 对象。
【讨论】:
以上是关于如何在 iPhone 应用程序中播放声音的主要内容,如果未能解决你的问题,请参考以下文章