Звук перестает работать в деки (Xcode) - PullRequest
0 голосов
/ 14 сентября 2011

В моем приложении Soundboard через некоторое время звук перестанет работать, пока приложение не будет закрыто и снова открыто. Не могу понять, что не так! вот мой код:

В файле .h:

(imported files here)

@interface MainView : UIView {

}
- (IBAction)pushButton2:(id)sender;

@end

В файле .m:

(imported files here)


@implementation MainView

- (IBAction)pushButton2:(id)sender {

    NSString *path = [[NSBundle mainBundle] pathForResource:@"sound1" ofType:@"mp3"];
    AVAudioPlayer* theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
    theAudio.delegate = self;
    [theAudio play];

}

@end

1 Ответ

1 голос
/ 14 сентября 2011

Я не уверен, что это вызовет поведение, которое вы видите, но вы определенно пропускаете AVAudioPlayer при каждом нажатии кнопки.Кроме того, я бы просто загрузить его один раз (скажем, в viewDidLoad), а не при каждом нажатии кнопки.Возможно что-то вроде:

@interface MainView : UIView
{
    AVAudioPlayer* audioPlayer;
}
- (IBAction)pushButton2:(id)sender;
@end

@implementation MainView

- (void) viewDidLoad
{
    NSString *path = [[NSBundle mainBundle] pathForResource:@"sound1" ofType:@"mp3"];
    audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
    audioPlayer.delegate = self;

}

- (void) viewDidUnload
{
    [audioPlayer release], audioPlayer = nil;
}

- (IBAction)pushButton2:(id)sender 
{
    [audioPlayer play];
}

@end
...