几乎没有简短的音效样本,在模拟器中播放就好了,但在真正的iPhone 3GS中完全没有。这是代码,关于Apple SysSound样本的原样:
CFBundleRef mb = CFBundleGetMainBundle ();
CFURLRef soundFileURLRef = CFBundleCopyResourceURL
(mb, CFSTR("mySound"), CFSTR ("caf"), NULL);
SystemSoundID sid;
AudioServicesCreateSystemSoundID(soundFileURLRef, &sid);
AudioServicesPlaySystemSound(sid);
使用iPhone时,我可以听到来自iTunes的键盘和音乐(不是在播放我的声音时同时使用) - 但根本听不到我的声音。 Vibra工作正常,所以即使框架也应该正确设置。
甚至尝试了SoundEffect.h / m示例代码,没有变化。使用相同的声音文件,但CAF不应该没问题,特别是当它在模拟器中播放时?
我接下来可以尝试什么?
答案 0 :(得分:2)
尝试转换为其他格式,例如wav或mp3,然后再次播放。如果你想使用caf,请确保在Terminal.app中正确格式化caf:
afconvert -f caff -d ima4 mysound.wav
答案 1 :(得分:2)
正如旁注一样 - 我遇到了完全相同的问题,花了将近一个小时的时间将文件转换为正确的格式等等。但问题是iPad上的“静音”开关。所以即使音量很高,我也可以在iPad上听到其他声音,因为静音开关已经打开,它没有播放系统声音。
为了增加混乱,这个应用程序使用文本到语音,来自转录的音量非常好,只有来自AudioServicesPlaySystemSound()
的声音,我听不到。
答案 2 :(得分:0)
类似的远景,但请记住手机的文件系统区分大小写,而mac通常不是。仔细检查您的文件名
答案 3 :(得分:0)
找到了一个更简单的解决方案:使用AIF声音文件:
这是我正在使用的代码,以及来自 Apple示例BubbleLevel的 SoundEffect.h 和 SoundEffect.m : < / p>
NSBundle *mainBundle = [NSBundle mainBundle];
buzzerSound = [[SoundEffect alloc] initWithContentsOfFile:[mainBundle pathForResource:@"buzzerSound" ofType:@"aif"]];
[buzzerSound play];
现在相同的代码 - 和声音效果 - 可以在模拟器和硬件中工作。顺便说一下,别忘了切换原来的iTunes设置!