我已经为我的应用添加了声音。 在我的.h我补充说:
CFURLRef soundFileURL;
SystemSoundID soundFile;
在我的.m中的viewDidLo中:
soundFileURL = CFBundleCopyResourceURL(
CFBundleGetMainBundle(),
CFSTR("sound"),
CFSTR("mp3"),
NULL);
AudioServicesCreateSystemSoundID(
soundFileURL,
&soundFile);
最后我添加了一个-playSound方法:
-(void)playSound {
NSLog(@"playSound");
AudioServicesPlayAlertSound(soundFile); }
它可以在iPhone模拟器上正常工作,但是当我在我的iPhone上构建应用程序时,控制台说声音已播放,但事实并非如此。 我读过很多其他人也遇到过这个问题,但我找不到任何解决方案。
怎么了?
答案 0 :(得分:1)
我会在AVFoundation
框架中推荐AVAudioPlayer
。它有一个简单的异步接口,可以在iOS上播放声音。
查看Apple编程指南here.
答案 1 :(得分:1)
它可能是您的编码 - 模拟器上的音频编解码器与您的实际iPhone硬件提供的音频编解码器有很大不同。尝试重新编码。
另外 - 你不想使用mp3作为声音,你想使用非压缩文件格式(我建议aiff来自经验)因为没有专用的解码硬件来支持声音解码你'重新尝试。 (播放音乐,推荐使用mp3)
答案 2 :(得分:0)
我有类似的问题。原来我用
引用了“Horn.caf”NSURL *hornSound = [[NSBundle mainBundle] URLForResource: @"horn"
withExtension: @"caf"];
注意案例的区别;我的OS X Lion安装在不区分大小写的文件系统上。 将代码更改为以下内容可以解决问题。
NSURL *hornSound = [[NSBundle mainBundle] URLForResource: @"Horn"
withExtension: @"caf"];
希望能帮助他人。