Xcode 4.2音板

时间:2011-11-23 17:37:06

标签: objective-c ios xcode4.2

我正在尝试创建一个Soundboard应用程序,但是当我按下另一个声音按钮时,我很难找到播放声音的方法并使声音停止。我想防止声音相互重叠。每个声音都会循环播放。有没有办法防止同时播放多个声音?我没有在任何教程中找到方法。我用于音板的代码看起来有点像这样:

-(IBAction)sound1 {
CFBundleRef mainBundle = CFBundleGetMainBundle();
CFURLRef soundFileURLRef;
soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"sound1", CFSTR      ("wav"), NULL);

UInt32 soundID;
AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
AudioServicesPlaySystemSound(soundID);
}

-(IBAction)sound2 {
CFBundleRef mainBundle = CFBundleGetMainBundle();
CFURLRef soundFileURLRef;
soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"sound2", CFSTR      ("wav"), NULL);

UInt32 soundID;
AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
AudioServicesPlaySystemSound(soundID);
}

1 个答案:

答案 0 :(得分:1)

您应该使用AVAudioPlayer,以便随时播放或停止声音,并使用委托方法确定声音是否已中断或已完成。