我似乎无法在设备或模拟器中播放AudioServices声音。这是我的代码:
NSString *sndPath = [[NSBundle mainBundle] pathForResource:@"click" ofType:@"aiff"];
SystemSoundID soundID;
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:sndPath], &soundID);
AudioServicesPlaySystemSound(soundID);
AudioServicesDisposeSystemSoundID(soundID);
我已经检查了我的系统首选项,是的,我确实打了“播放用户界面音效”...我可能做错了什么?
谢谢!
编辑:当用户在设备上移动触摸时,我正在尝试创建音频点击,因此我需要它来快速播放相同的声音。我应该使用AVAudioPlayer吗?
答案 0 :(得分:1)
请勿在完成播放之前处理声音。你可以这样做:
AudioServicesAddSystemSoundCompletion(soundID, NULL, NULL, (AudioServicesSystemSoundCompletionProc)AudioServicesDisposeSystemSoundID, NULL);
稍微icky,因为我们假设它不使用Pascal调用约定(即AudioServicesDisposeSystemSoundID()可以处理额外的NULL参数)。