2009-09-01 7 views
0

Je construis un enregistreur vocal. Le recodage et le jeu fonctionnent bien sur le simulateur. Mais sur iPhone ça ne marche pas. (J'ai suivi les étapes exactes comme mentionné dans iPhoneOSProgrammingGuide/AudioandVideoTechnologies)jouer un fichier .caf: fonctionne bien dans le simulateur, mais pas dans l'iPhone

printf("%s(player)\n",[[self.soundFileURL absoluteString] UTF8String]); 

    AVAudioPlayer *newPlayer = 
    [[AVAudioPlayer alloc] initWithContentsOfURL: self.soundFileURL error: nil]; 

    if([self.soundFileURL isFileURL]){ 
     printf("isFileURL\n"); 
    } 

    self.player = newPlayer; 
    [newPlayer release]; 

    [player prepareToPlay]; 
    [player setDelegate: self]; 
    //[email protected]"Playing.."; 
    [player play]; 
    printf("playing..\n"); 

Le débogueur est eteint file: // localhost/var/mobile/Applications/9A607A45-974B-4E9F-9839-FD21B3BC9DD8/Documents/1251828741. caf (player) isFileURL en cours de lecture ..

Répondre

0

L'iPhone OS sur l'appareil ne dispose pas des mêmes codecs audio que le simulateur d'iPhone OS. Dans mes projets, j'ai eu des problèmes en lisant .caf fichiers encodés d'une manière mais pas une autre ... un peu d'essai et d'erreur aidera ici (j'ai fini par utiliser 16BLE PCM).

Je voudrais essayer de modifier le codage du fichier audio enregistré dans une tentative de trouver un codec audio pris en charge par le périphérique.

+1

Huh? Si vous exécutez afconvert -hf, "16BLE" n'est même pas listé comme format. Est-ce un autre nom pour autre chose? – Nate

0

Assurez-vous que le son n'est pas désactivé sur l'iPhone.

Ajouter ce qui suit à votre délégué (auto):

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)playedPlayer successfully:(BOOL)flag { 
    NSLog(@"Done playing %@", flag ? @"with success" : @"with failure"); 
} 

- (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError *)error { 
    NSLog(@"Error while decoding: %@", [error localizedDescription]); 
} 

Cela pourrait vous donner quelques indices.

0

fichier .caf pour iPhone besoin d'être encodé comme un canal mono et non pas avec un canal stéréo alors seulement il fonctionnera avec l'iPhone.

Questions connexes