0

我想在我的 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);
}
4

2 回答 2

7

在处理上面列出的代码问题之前,还要检查其他一些事情:

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

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

于 2013-06-03T18:41:27.207 回答
5

这是许多开发人员浪费时间的一个小细节:

区分大小写

真的,这一切都归结为:

  • iPhone模拟器:区分大小写
  • iOS设备:区分大小写

因此,您的代码中可能有“瀑布”,但实际的声音名称是“瀑布”。它甚至可能类似于“watErFaLl”。

这在模拟器上可以正常工作,但在设备上却不行——设备根本找不到声音。

从声音到图像再到 plist,这一切都发生在我身上。

检查您的案例!

此外,AudioServices对设备中可以播放的内容和不能播放的内容有一些指导:

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

于 2013-06-03T18:25:11.807 回答