Каждый раз, когда я проигрываю свой клип AVAudio, он воспроизводится, а через мгновение вылетает. Я не могу понять почему. Когда вылетает, то в журнале ничего не дает. Вот мой код. Я также импортировал AVFoundation/AVFoundation.h и AudioToolbox/AudioToolbox.h

-(void)soundEffect {
    NSBundle *mainBundle = [NSBundle mainBundle];
    NSString *filePath = [mainBundle pathForResource:@"BlastWAV" ofType:@"wav"];
    NSData *fileData = [NSData dataWithContentsOfFile:filePath];

    NSError *error = nil;

    avSound = [[AVAudioPlayer alloc] initWithData:fileData error:&error];
    [avSound prepareToPlay];

    [avSound play];
}
0
Alan Scarpa 20 Авг 2014 в 04:00
Спасибо за правки. Есть предложения, как решить возникшую проблему?
 – 
Alan Scarpa
20 Авг 2014 в 06:27
1
Где происходит сбой, что он говорит, и если вы используете точки останова исключения, что он говорит? Нам нужны такие детали. Является ли либо filePath, либо fileData равным нулю? И поскольку это размещено с тегом cocos2d, почему вы просто не используете SimpleAudioEngine (при условии, что cocos2d 2.x)?
 – 
Allen S
20 Авг 2014 в 08:33
Ты мужчина! Это сработало отлично. Я новичок в ObjC и Cocos. Я понятия не имел, что такое SimpleAudioEngine, но я поискал его, и это было простое решение. Спасибо! (Если вы хотите опубликовать свой комментарий в качестве ответа, я обязательно выберу его как правильный).
 – 
Alan Scarpa
20 Авг 2014 в 18:19

1 ответ

Лучший ответ

Вот ответ:

Поскольку вы используете cocos2d, вы можете использовать SimpleAudioEngine, если вы используете v2.x или OALSimpleAudio, если вы используете v3.x следующим образом:

[[SimpleAudioEngine sharedEngine] preloadEffect:@"sound.caf"];
[[SimpleAudioEngine sharedEngine] playEffect:@"sound.caf"];

И когда вы закончите с этим в конце сцены:

[[SimpleAudioEngine sharedEngine] unloadEffect:@"sound.caf"];

Для v3 эквивалент:

[[OALSimpleAudio sharedInstance] preloadEffect:@"sound.caf"];
[[OALSimpleAudio sharedInstance] playEffect:@"sound.caf" loop:NO];
[[OALSimpleAudio sharedInstance] unloadAllEffects];
0
Allen S 20 Авг 2014 в 21:47