Есть несколько вещей, которые выглядят неправильно в вашем коде:
(1).Нет метода Release, [Media Release]
должно быть [Media release]
;
(2).Если вы воспроизводите Sound2, пока Sound1 все еще воспроизводится, вы теряете экземпляр Media:
Media = [[AVAudioPlayer alloc] initWithContentsOfURL:...
Это выделяет нового игрока и перезаписывает старый, не выпуская его первым;
(3).Обычно плохая идея освобождать вызывающий объект в делегате;
(4).Я бы также предложил переименовать Media
в media
и Path
в path
.
Таким образом, игровое действие должно выглядеть следующим образом:
- (IBAction)playSound1
{
path = [[NSBundle mainBundle] pathForResource:@"Sound1" ofType:@"wav"];
media = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
[media play];
[media release];
}