Чтобы подключить кнопку, сделайте ваш метод playSound
обработчиком для события кнопки UIControlEventTouchUpInside
. Предполагая, что это в контроллере представления, вы можете поместить это в метод viewDidLoad
:
[button addTarget:self action:@selector(playSound) forControlEvents:UIControlEventTouchUpInside];
К вашему сведению, вы теряете память, потому что alloc
- объект, но никогда release
- объект.
Вы должны создать новый AVAudioPlayer
член для класса, чтобы избежать этого.
@interface MyViewController : ...
{
...
AVAudioPlayer* myAudio;
...
}
- (void)playSound
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"boing_1" ofType:@"wav"];
[myAudio release];
myAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path error:NULL]];
myAudio.delegate = self;
myAudio.volume = 2.0;
myAudio.numberOfLoops = 1;
[myAudio play];
}
Не забудьте указать [myAudio release]
в вашем методе dealloc
.
(я сделал это без объявления myAudio
как @property
, но это не обязательно)