声音在模拟器中工作,而不是真正的iPhone

时间:2010-01-14 13:21:18

标签: iphone audio caf

几乎没有简短的音效样本,在模拟器中播放就好了,但在真正的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不应该没问题,特别是当它在模拟器中播放时?

我接下来可以尝试什么?

4 个答案:

答案 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声音文件

  • 点击iTunes>首
  • 点击“常规”标签
  • 点击“导入设置”按钮
  • 在“导入使用”下拉列表中,选择“AIFF编码器”
  • 保存更改
  • 选择您的声音文件,然后选择“创建AIFF版本”

这是我正在使用的代码,以及来自 Apple示例BubbleLevel SoundEffect.h SoundEffect.m < / p>

NSBundle *mainBundle = [NSBundle mainBundle];
buzzerSound = [[SoundEffect alloc] initWithContentsOfFile:[mainBundle pathForResource:@"buzzerSound" ofType:@"aif"]];
[buzzerSound play];

现在相同的代码 - 和声音效果 - 可以在模拟器和硬件中工作。顺便说一下,别忘了切换原来的iTunes设置!