Попытка воспроизвести произвольный звук с помощью SimpleAudioEngine, нет звука

Поэтому изначально приложение, которое я собирался создать, издавало только один звук при взмахе. Код для этого был

[[SimpleAudioEngine sharedEngine] playEffect:@"Swoosh.mp3"];
CCMoveTo *moveto=[CCMoveTo actionWithDuration:0.50 position:ccp(currentSkewed.position.x, [UIScreen mainScreen].bounds.size.height+300)];
CCScaleTo *scalto=[CCScaleTo actionWithDuration:0.30 scale:0.5];
CCSequence *seq=[CCSequence actionOne:moveto two:[CCCallFuncN actionWithTarget:self selector:@selector(RemoveSprite:)]];
[currentSkewed runAction:seq];
[currentSkewed runAction:scalto];
[skewdArray removeObject:currentSkewed];
currentSkewed=nil;

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

NSString *Soundname;

int randSound = arc4random() % 3;
switch (randSound) {
    case 0:
        Soundname = @"Swoosh1.mp3";
        break;
    case 1:
        Soundname = @"Swoosh2.mp3";
        break;
    case 2:
        Soundname = @"Swoosh3.mp3";
        break;

}
[[SimpleAudioEngine sharedEngine] playEffect:@"Soundname"];
CCMoveTo *moveto=[CCMoveTo actionWithDuration:0.50 position:ccp(currentSkewed.position.x, [UIScreen mainScreen].bounds.size.height+300)];
CCScaleTo *scalto=[CCScaleTo actionWithDuration:0.30 scale:0.5];
CCSequence *seq=[CCSequence actionOne:moveto two:[CCCallFuncN actionWithTarget:self selector:@selector(RemoveSprite:)]];
[currentSkewed runAction:seq];
[currentSkewed runAction:scalto];
[skewdArray removeObject:currentSkewed];
currentSkewed=nil;

Я сделал строку, а затем заменил playEffect:@"Swoosh.mp3"]; с playEffect:@"Soundname"];

Я пробовал несколько вариантов Soundname, ни одна из которых мне не показалась работающей. Я новичок в программировании, я знаю, что это что-то глупое, что мне не хватает. У кого-нибудь есть идеи?

1 ответ

Решение

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

Попробуйте изменить:

[[SimpleAudioEngine sharedEngine] playEffect:@"Soundname"];

на это (обратите внимание на отсутствие кавычек):

[[SimpleAudioEngine sharedEngine] playEffect:Soundname];
Другие вопросы по тегам