Как я могу выпустить звук, используя AVAudioPlayer? - PullRequest
0 голосов
/ 09 марта 2011

Я пытаюсь создать "интерактивное интервью" на звуковой доске с множеством кнопок с помощью фреймворка AVFoundation.Дека готова, но у меня есть одна проблема: когда я нажимаю один из моих звуков, он не останавливается, когда я нажимаю новый одновременноЕсть ли простой способ остановить предыдущий звук, если нажать новый?Мой код выглядит так

- (IBAction)playSound0 {
    NSString *path = [[NSBundle mainBundle] pathForResource:@"about" ofType:@"mp3"];
    AVAudioPlayer* theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];

    [theAudio play];
}

- (IBAction)playSound1 {
    NSString *path = [[NSBundle mainBundle] pathForResource:@"chillwhatup" ofType:@"mp3"];
    AVAudioPlayer* theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];

    [theAudio play];
}

- (IBAction)playSound2 {
    NSString *path = [[NSBundle mainBundle] pathForResource:@"gethighorgetlow" ofType:@"mp3"];
    AVAudioPlayer* theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];

    [theAudio play];
}

- (IBAction)playSound3 {
    NSString *path = [[NSBundle mainBundle] pathForResource:@"icamefromthere" ofType:@"mp3"];
    AVAudioPlayer* theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];

    [theAudio play];
}

- (IBAction)playSound4 {
    NSString *path = [[NSBundle mainBundle] pathForResource:@"idoeverythinggood" ofType:@"mp3"];
    AVAudioPlayer* theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];


    [theAudio play];

}

1 Ответ

0 голосов
/ 09 марта 2011

Я бы просто проследил, чтобы мой класс отслеживал последний начавшийся звук, и, прежде чем начать воспроизводить новый звук, остановите предыдущий, если он все еще воспроизводится.

AVAudioPlayer имеет остановку метод остановки звука и воспроизведение метод, чтобы увидеть, воспроизводится ли он.

...