2014-10-09 3 views
0

Я пытаюсь играть звук каждый раз, когда я нажимаю на экране в моей игре ...Воспроизведение звука в какао каждый раз, когда вы касаетесь экрана

В принципе, каждый раз, когда мой персонаж прыгает, я wan't немного звука для воспроизведения. К сожалению, кажется, что он работает только в цикле, если цикл (из предыдущего прыжка) уже завершил воспроизведение с предыдущего сеанса ... Значение Я не влияю на звук каждый раз при касании экрана ...

Используя эту структуру:

#import <AVFoundation/AVFoundation.h> 

Это, как я загрузить мой файл:

-(void)LoadMusic{ 
    NSString *jumpSound = [[NSBundle mainBundle] pathForResource:@"Burst" ofType:@"mp3"]; 
    jumpAffect = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:jumpSound] error:NULL]; 
    jumpAffect.delegate = self; 
} 

Назвав его в viewDidLoad:

- (void)viewDidLoad{ 
    [self LoadMusic]; 
    ... 
    [super viewDidLoad]; 
} 

И это, когда я хочу, чтобы играть (каждый раз, когда я касаюсь экрана (что делает прыжок символов):

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *) event{ 
    [jumpAffect play]; 
    jump = 16; 
} 

Есть ли что-то я забыл, чтобы включить петлю для воспроизведения друг над другими? или я могу остановить цикл и перезапустить его, если он все еще играет, когда происходит следующее касание?

+2

Для воспроизведения нескольких звуков за один раз вам понадобится несколько AVAudioPlayer. –

ответ

1

попробовать что-то вроде этого:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    [self playJumpSound]; 
} 

- (void)playJumpSound { 
    AVAudioPlayer *jumpEffect = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:jumpSound] error:NULL]; 
    [jumpEffect play]; 
} 

Если вы обнаружили, что загрузка вашего звука слишком медленно, загружать несколько из них до фронта, а затем повторно использовать игрок.

+0

Эй. Спасибо за публикацию. Это решило мою проблему ... Теперь она перезагружает и воспроизводит звук каждый раз, когда я касаюсь его ... :) – Reanimation

+0

Наверняка вам следует запустить анализ утечки памяти на этом источнике на всякий случай. Я этого не сделал, поэтому он может протекать (особенно если вы не используете ARC). –

+0

Каков наилучший способ сделать это? Благодарю. – Reanimation

Смежные вопросы