iPhone - 一些没有播放的声音文件

时间:2009-02-19 17:24:15

标签: iphone audio

我有一个简短的wav文件列表。其中两个文件无法在模拟器或设备本身上播放。所有都是1秒钟的wav文件。

这是我播放文件的方式

SystemSoundID soundID;
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"sound1" ofType:@"wav"];

NSURL *fileUrl = [NSURL fileURLWithPath:filePath];
AudioServicesCreateSystemSoundID((CFURLRef)fileUrl, &soundID);
AudioServicesPlaySystemSound(soundID);

有人可以告诉我问题是什么。感谢。

P.S。当我在Finder中查看文件时,未播放的文件将默认播放器显示为QuickTime,其他文件将默认播放器显示为iTunes,如果这有任何帮助。

Alan提出的解决方案是使用AIFF文件。要将wav转换为AIFF,请在iTunes中打开声音文件。在iTunes中,选择首选项 - >常规 - >输入设置 - >使用AIFF编码器导入。选择声音文件,然后在“高级”菜单选项中选择“创建AIFF版本”选项

2 个答案:

答案 0 :(得分:5)

iPhone仅支持以下编解码器:

  • AMR(自适应多速率,语音编解码器)
  • iLBC(互联网低比特率编解码器,也是语音编解码器)
  • IMA / ADPCM(也称为IMA-4)
  • 线性PCM
  • μLaw和aLaw

您的WAV文件可能包含不同格式的音频,因此即使iPhone支持WAV文件,它也可能不支持您的特定WAV文件。

最好的选择通常是使用命令行程序“afconvert”将所有内容转换为CAF文件(这是Apple的默认格式)。 e.g:

afconvert sound1.wav sound1.caf

可以通过运行列出完整的转换选项集:

afconvert -h

这种转换在大多数格式中都是无损的。 CAF文件格式通常是在iPhone上使用的最快且最低的开销。

答案 1 :(得分:1)

看到这个问题 Trying to play sound through iPhone Simulator

我在.aiff文件方面取得了很多成功。

最好知道完全 AudioServicesCreateSystemSoundID在文件传递给它时检查的内容。