系统声音在iPhone模拟器中播放,但在iPhone上无法播放

时间:2013-06-03 18:23:37

标签: iphone ios

我想在我的iphone上播放系统声音,声音在模拟器中播放效果非常好,但在设备上无效。

- (IBAction)SystemSound:(id)sender {
    NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"waterfall"      ofType:@"caf"];
    NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];
    AudioServicesCreateSystemSoundID((__bridge CFURLRef)soundFileURL, &systemSound);
    AudioServicesPlaySystemSound(systemSound);
}

2 个答案:

答案 0 :(得分:5)

以下是许多开发人员浪费时间的小细节:

区分大小写

真的,这一切归结为:

  • iPhone 模拟器:案例 - 不敏感
  • iOS 设备:案例 - 敏感

所以,你的代码中可能有'瀑布',但实际的声音名称是'瀑布'。它甚至可能像'wAtErFaLl'。

这可以在模拟器上正常工作,但设备上 - 设备根本无法找到声音。

对于我来说,从声音到图像再到一切都是如此。

检查您的案例!

此外,AudioServices在设备上可以播放的内容中有一些guidelines,但不能:

  

使用此功能播放的声音文件必须: - 持续时间不超过30秒 - 采用线性PCM或IMA4(IMA / ADPCM)格式 - 打包在.caf中,.aif或.wav文件

答案 1 :(得分:5)

在追逐上面列出的代码问题之前,还要检查其他事项:

1)您的手机是否与蓝牙耳机配对?如果是这样,音频将会出现在那里而不是外部扬声器。

2)你的音频是否静音?检查侧面的开关和设置。