2010-11-23 45 views
26

J'ai créé une application iPhone pour enregistrer notre voix. Lorsque j'essaie d'enregistrer, j'obtiens un message d'erreur dans la déclaration suivante.OSStatus erreur 1718449215


recorder = [[ AVAudioRecorder alloc] initWithURL:url settings:recordSetting error:&err]; 

erreur Domaine = NSOSStatusErrorDomain Code = 1718449215 "L'opération n'a pas pu être terminée. (Erreur OSStatus 1718449215.)"

Si j'ai essayé d'enregistrer dans le fichier .caf, il fonctionne très bien. Si j'ai essayé avec .m4a, j'obtiens ce message d'erreur.

S'il vous plaît aidez-moi à le résoudre.

Merci.

+3

La question est à jour, mais depuis que je suis venu ici par Google je voudrais partager cette référence: [osstatus.com] (https://www.osstatus.com) vous permet de rechercher les codes d'erreur – Daneo

+1

@Daneo Il peut être vieux, mais il n'est pas obsolète. J'ai eu la même erreur en 2017! – StuartQ

Répondre

56

1718449215 est la représentation décimale du code à quatre caractères pour l'erreur kAudioFormatUnsupportedDataFormatError.

En général, vous pouvez utiliser quelque chose comme ça pour obtenir plus d'informations des erreurs que vous recevez:

NSError *error = [NSError errorWithDomain:NSOSStatusErrorDomain 
          code:my_error_code 
          userInfo:nil]; 
NSLog(@"Error: %@", [error description]); 
+0

Puis-je enregistrer au format .m4a? – jfalexvijay

+0

.m4a est un format de fichier, pas un codec. Le codec dans lequel vous enregistrez est déterminé par AVFormatIDKey. – memmons

3

Les codes d'erreur OSStatus sont douloureux, ils sont souvent trop généraux pour vous aider. Avez-vous essayé de decode the four-char error code? Parfois cela aide (d'autres fois vous obtenez juste des ordures). Créez et montrez-nous un exemple de code minimal qui présente le problème. Dans ce cas, je parie que le code à quatre chiffres est fmt?. Google pour le code numérique et vous devriez être plus sage.

0

Si vous êtes dans c ou code cpp vous pouvez le faire.

char code[4]; 
*((SInt32*)&code[0]) = error; 
3

Dans le cas où cette aide les autres: je viens d'avoir la même erreur, et il a été causé en essayant de créer/utiliser des fichiers audio dans le mauvais format. J'avais prédéfini l'enregistrement pour créer un fichier .caf, mais à la place, j'ai appelé le fichier xxx.wav.

3

J'ai également fait face à ce problème lorsque j'ai converti le type de fichier en .mp3 alors qu'avant j'utilisais le format .caf pour enregistrer le son avec AVAudioRecorder. Je ai de nouveau converti le type de fichier au format.caf & cela fonctionne. Vous pouvez utiliser les formats suivants

AAC, PCM, IMA4, ULAW, ILBC

+0

Merci pour les formats, les extensions de fichiers sont permises par iOS? par exemple, quelle est l'extension de fichier pour un fichier au format ULAW? – Josh

0
UInt32 code = CFSwapInt32HostToBig(error); 
NSLog(@"%4.4s"(char *)&code); 
+1

S'il vous plaît envisager de modifier votre réponse pour inclure une explication de la façon dont votre code fonctionne. – Matt

1

"NSDictionary" si elle est vide, la valeur par défaut est de haute qualité, si vous définissez, cette valeur sera très faible, vous pouvez essayer d'annuler ces paramètres:

setting[AVFormatIDKey] = @(kAudioFormatAppleIMA4); 
setting[AVSampleRateKey] = @(600.0); 
setting[AVNumberOfChannelsKey] = @(1); 
setting[AVLinearPCMBitDepthKey] = @(8); 
+0

J'ai supprimé les commentaires en chinois de votre message. Si elles sont cruciales pour votre réponse, merci de les traduire en anglais et de les rajouter. StackOverflow est pour l'anglais seulement. Merci! – Rob

+1

oh je vois .. merci pour votre clarification.Cher, s'il vous plaît pardonnez mon anglais n'est pas très bon, mais vous pouvez essayer cette réponse, j'espère que cette réponse vous aidera – peng

+1

Merci de me le rappeler, pardonnez mon insouciance, je vais y prêter attention plus tard, et je veux dire vous avez raison.Merci! – peng