在我的应用程序中,我将按钮设置为键盘。每个按钮的作用类似于钢琴键,您触摸按钮,按住时声音会播放,松开时声音会停止。对于这种方法,我使用了两个 IBAction。一种用于 Touch Down(声音播放)和 Touch Up Inside(声音停止)。我正在使用 SystemSoundID 播放声音,因为 AVAudioPlayer 有延迟播放。唯一的问题是,当我按住按钮时,声音播放正常,但一旦我松开触摸,我的应用程序就会崩溃。以下是我的代码:
.h 文件:
SystemSoundID *soundID;
.m 文件:
- (IBAction)ASoundStart:(id)sender {
NSString *soundFile = [[NSBundle mainBundle] pathForResource:@"P1:4t" ofType:@"mp3"];
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:soundFile], &soundID);
AudioServicesPlaySystemSound(soundID);
[soundFile release];
}
- (IBAction)ASoundStop:(id)sender {
AudioServicesDisposeSystemSoundID(soundID);
}