2012-05-20 2 views
0

я записать какой-то файл, то играть с:SimpleAudioEngine всегда играет тот же эффект?

NSArray *dirPaths; 
    NSString *docsDir; 
    dirPaths = NSSearchPathForDirectoriesInDomains(
                NSDocumentDirectory, NSUserDomainMask, YES); 
    docsDir = [dirPaths objectAtIndex:0]; 
    NSString *soundFilePath = [docsDir 
           stringByAppendingPathComponent:@"temp0.caf"]; 

//play 
[[SimpleAudioEngine sharedEngine] preloadEffect:soundFilePath]; 
    [[SimpleAudioEngine sharedEngine] playEffect:soundFilePath pitch:1.5f pan:0.0f gain:0.3f]; 

он работает в первый раз, но второй раз он играет один и тот же файл снова, даже, что я уже записан какой-либо другой файл.

любая помощь?

+1

Вы уверены, что новую запись также называют 'temp0.caf'? Когда вы хотите воспроизвести файл, вы запускаете весь этот код? У меня не было опыта работы с этим движком, но, возможно, вы должны разгрузить его, прежде чем предварительно загрузить его снова? – DanSkeel

+0

Я действительно не понимаю, что вы пытаетесь спросить, вы говорите: «даже если я уже записал какой-то другой файл» Ну, пожалуйста, посмотрим, что код ... – MCKapur

+0

Я записываю файл, используя простой avaudioRecorder, там нет ничего особенного. и да, он записан в тот же путь к файлу. если я играю с CDSoundEngine, он меняет перекодировку. – user1280535

ответ

1

Может быть, ваш аудио двигатель поджимать этот эффект и сохранить эту предварительную нагрузку, попробуйте:

[[SimpleAudioEngine sharedEngine] preloadEffect:nil]; 
[[SimpleAudioEngine sharedEngine] preloadEffect:soundFilePath]; 

    [[SimpleAudioEngine sharedEngine] playEffect:soundFilePath pitch:1.5f pan:0.0f gain:0.3f]; 

Кроме того, когда и где этот код называется. Его назвали после вашей записи? Возможно, попробуйте:

NSArray *dirPaths = nil; 
    NSString *docsDir = nil; 

Наверху. Попробуйте, если это не сработает, мне нужно увидеть ваш код записи

+0

попробовали, что спасибо. Это не работает. даже без предварительной нагрузки его нет. все еще воспроизводят один и тот же звук снова и снова. если я играю с аудио, CDSoundEngine работает отлично. – user1280535

+0

получил: [[SimpleAudioEngine sharedEngine] unloadEffect: soundFilePath]; – user1280535

+0

Ahhh right .... – MCKapur

0

Что я думаю, что ваш аудиофайл отказывается перезаписываться новым. Может быть, вы должны попытаться изменить имя файла каждый раз, когда пользователь запишет его. Так что, когда он записывает, вы сохраните файл в виде строки, с форматом:

[NSMutableString stringWithFormat:@"temp%d.caf",number]; 

Затем, когда пользователь хочет записать, вы увеличиваете «номер» один.

number = number +1; 
Смежные вопросы