这是我现在正在使用的代码,它不起作用(当我按下调用此方法的按钮时没有任何反应)。以前,我有一个用于 audioPlayer 的属性并且它可以工作(下面的所有 audioPlayer 显然都是 self.audioPlayer)。问题是当我尝试播放两次声音时,它会结束第一个声音的播放。
这不好,因为我正在制作音板并希望声音能够重叠。我以为我可以让 audioPlayer 成为局部变量而不是属性,一切都会好起来的,但现在声音根本不起作用,我不知道为什么。在我为 AVAudioPlayer 找到的所有教程中,都创建了一个属性,但没有人解释原因。如果这不起作用,我有什么替代方法可以发出可以重叠的声音?
- (void)loadSound:(NSString *)sound ofType:(NSString *)type withDelegate:(BOOL)delegate {
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
pathForResource:sound
ofType:type]];
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
if (delegate) audioPlayer.delegate = self;
[audioPlayer prepareToPlay];
[audioPlayer play];
}