NSString *path = [[NSBundle mainBundle] pathForResource:sound ofType:@"wav"];
SystemSoundID soundID;
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path], &soundID);
AudioServicesPlaySystemSound (soundID);
答案 0 :(得分:3)
我认为使用AudioServicesPlaySystemSound播放声音的时间限制为5秒(尽管文档的某些版本声称为30秒)。
替代方案是openAL和音频队列。这里有一个关于openAL的有用教程:http://benbritten.com/blog/2008/11/06/openal-sound-on-the-iphone/
答案 1 :(得分:2)
限制应仅在iPhone模拟器中,而不在设备上。在设备上,AudioServicesPlaySystemSound应播放长达30秒的声音。
我认为声音格式/压缩是导致'人工'5秒限制的原因。在终端上使用afconvert将声音转换为Apple建议的格式。