我有一个简短的wav文件列表.其中两个文件无法在模拟器或设备本身上播放.所有都是1秒长的wav文件.
这就是我播放文件的方式
SystemSoundID soundID; NSString *filePath = [[NSBundle mainBundle] pathForResource:@"sound1" ofType:@"wav"]; NSURL *fileUrl = [NSURL fileURLWithPath:filePath]; AudioServicesCreateSystemSoundID((CFURLRef)fileUrl, &soundID); AudioServicesPlaySystemSound(soundID);
有人可以告诉我问题是什么.谢谢.
PS当我在Finder中查看文件时,未播放的文件将默认播放器显示为QuickTime,其他文件将默认播放器显示为iTunes,如果这有任何帮助.
Alan建议的解决方案是使用AIFF文件.要将wav转换为AIFF,请在iTunes中打开声音文件.在iTunes中,选择首选项 - >常规 - >导入设置 - >使用AIFF编码器导入.选择声音文件,然后在"高级"菜单选项中选择"创建AIFF版本"选项
iPhone仅支持以下编解码器:
AMR(自适应多速率,语音编解码器)
iLBC(互联网低比特率编解码器,也是语音编解码器)
IMA/ADPCM(也称为IMA-4)
线性PCM
μLaw和aLaw
您的WAV文件可能包含不同格式的音频,因此即使iPhone支持WAV文件,它也可能不支持您的特定WAV文件.
最好的选择通常是使用命令行程序"afconvert"将所有内容转换为CAF文件(这是Apple的默认格式).例如:
afconvert sound1.wav sound1.caf
可以通过运行列出完整的转换选项集:
afconvert -h
大多数格式的转换都是无损的.CAF文件格式通常是在iPhone上使用的最快和最低开销.