我有一个简短的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版本”选项
答案 0 :(得分:5)
iPhone仅支持以下编解码器:
您的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在文件传递给它时检查的内容。