[Résolu] Pas d'enregistrement sur device avec AVAudioRecorder

snoozemansnoozeman Membre
octobre 2011 modifié dans API UIKit #1
Bonjour à  tous !
C'est mon 1er post sur ce forum alors je me présente un peu; Je m'appel Damien et je suis étudiant.
Je viens à  vous car j'ai un problème et malgré mes recherches sur google je n'ai rien trouvé...

Donc j'ai une application pour iPad qui a plusieurs boutons, ou l'on peut sur chacun d'eux jouer/enregistrer un son.
Cette app marchait très bien jusqu'à  iOS5. Maintenant je ne peux plus enregistrer de son. Ce qui est par contre bizarre, c'est que l'enregistrement marche très bien sur le simulateur avec iOS4.3 et iOS5...

Voici mon code :

Dans le AppDelegate :

<br />AVAudioSession *audioSession = [AVAudioSession sharedInstance];<br />[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];<br />[audioSession setActive:YES error:nil];<br />


Et ici dans le ViewController de mon "bouton" :

<br />- (void)configRecorder<br />{&nbsp; &nbsp; <br />&nbsp; &nbsp; NSMutableDictionary* recordSetting = [[NSMutableDictionary alloc] init];<br />&nbsp; &nbsp; [recordSetting setValue :[NSNumber numberWithInt:kAudioFormatAppleIMA4] forKey:AVFormatIDKey];<br />&nbsp; &nbsp; [recordSetting setValue:[NSNumber numberWithFloat:32000.0] forKey:AVSampleRateKey]; <br />&nbsp; &nbsp; [recordSetting setValue:[NSNumber numberWithInt:2] forKey:AVNumberOfChannelsKey];<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; //file est un NSURL vers un fichier .caf<br />&nbsp; &nbsp; recorder = [[AVAudioRecorder alloc] initWithURL:file settings:recordSetting error:nil];<br />&nbsp; &nbsp; [recorder setDelegate:self];<br />&nbsp; &nbsp; [recorder prepareToRecord];<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; [recordSetting release];<br />}<br /><br />//Méthode appelée par un IBAction au touchDown<br />- (void)startRecording<br />{<br />&nbsp; &nbsp; if (!hasRecordDone) [self configRecorder];<br />&nbsp; &nbsp; hasRecordDone = YES;<br />&nbsp; &nbsp; isRecording = YES;<br />&nbsp; &nbsp; [recorder record];<br />}<br /><br />//Méthode appelée par un IBAction au touchUp<br />- (void)stopRecording<br />{<br />&nbsp; &nbsp; [recorder stop];<br />&nbsp; &nbsp; isRecording = NO;<br />}<br />


Donc si quelqu'un peut m'aider !  :)
Merci d'avance!

Réponses

  • zoczoc Membre
    11:12 modifié #2
    Que contient "file" ?


    Premier conseil: Vérifier que "file" contient bien un chemin de fichier sur lequel tu as le droit d'écriture. Parce que, typiquement, quand ça marche sur le simulateur mais pas sur le device, le problème de sandbox n'est pas loin.

  • snoozemansnoozeman Membre
    11:12 modifié #3
    Dans mon projet j'ai des fichiers .caf et file va en récupérer un dans le bundle:

    <br />file = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@&quot;sound-%d&quot;, identifier] ofType:@&quot;caf&quot;]];<br />
    


    Je vais essayer de changer le directory de ces fichiers.
  • zoczoc Membre
    octobre 2011 modifié #4
    Il est clairement interdit d'écrire dans le Bundle de l'application...



    ... Et j'ai du mal à  comprendre comment ça a pu fonctionner avant...

  • DrakenDraken Membre
    11:12 modifié #5
    dans 1319468925:

    Bonjour à  tous !
    C'est mon 1er post sur ce forum alors je me présente un peu; Je m'appel Damien et je suis étudiant.

    La présentations des nouveaux membres c'est ici : http://pommedev.mediabox.fr/presentation-des-membres/

  • snoozemansnoozeman Membre
    11:12 modifié #6
    Merci beaucoup de votre aide !
    Je me souviendrai de ça !

    J'ai fais une copie de mes fichiers du Bundle vers NSDocumentDirectory et ça marche enfin.

    Encore merci !
Connectez-vous ou Inscrivez-vous pour répondre.