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

los*_*sit 2 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);
Run Code Online (Sandbox Code Playgroud)

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

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

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

Mat*_*her 5

iPhone仅支持以下编解码器:

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

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

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

afconvert sound1.wav sound1.caf
Run Code Online (Sandbox Code Playgroud)

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

afconvert -h
Run Code Online (Sandbox Code Playgroud)

大多数格式的转换都是无损的.CAF文件格式通常是在iPhone上使用的最快和最低开销.