无法在模拟器或设备上听到系统声音

时间:2010-08-12 16:33:36

标签: iphone ipad audio ios-simulator

我似乎无法在设备或模拟器中播放AudioServices声音。这是我的代码:

NSString *sndPath = [[NSBundle mainBundle] pathForResource:@"click" ofType:@"aiff"];
SystemSoundID soundID;
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:sndPath], &soundID);
AudioServicesPlaySystemSound(soundID);
AudioServicesDisposeSystemSoundID(soundID);

我已经检查了我的系统首选项,是的,我确实打了“播放用户界面音效”...我可能做错了什么?

谢谢!

编辑:当用户在设备上移动触摸时,我正在尝试创建音频点击,因此我需要它来快速播放相同的声音。我应该使用AVAudioPlayer吗?

1 个答案:

答案 0 :(得分:1)

请勿在完成播放之前处理声音。你可以这样做:

AudioServicesAddSystemSoundCompletion(soundID, NULL, NULL, (AudioServicesSystemSoundCompletionProc)AudioServicesDisposeSystemSoundID, NULL);

稍微icky,因为我们假设它不使用Pascal调用约定(即AudioServicesDisposeSystemSoundID()可以处理额外的NULL参数)。