2010-12-07 43 views
1

En très spécifique, mais les cas reproductibles, je reçois audioPlayerDecodeErrorDidOccur:error: la NSError suivante:AVAudioPlayer interrompre la lecture avec audioPlayerDecodeErrorDidOccur, avec NSOSStatusErrorDomain -50

Error Domain=NSOSStatusErrorDomain Code=-50 "The operation couldn’t be completed. (OSStatus error -50.)"

Cela se produit dans un jeu qui utilise également OpenAL; nous jouons des sons en utilisant OpenAL, mais essayons de tirer parti du décodage AAC matériel. Cependant, l'apparition de ce qui précède ne semble pas liée à tout ce que nous faisons dans OpenAL.

Cela se produit environ 2-3 secondes après que nous ayons effectué une commutation de scène (mode de jeu) - mais seulement avec certaines combinaisons de scènes de-et-à. C'est encore plus étrange puisque nous ne faisons rien d'important sur ces événements. J'ai vérifié que nous ne faisons rien avec AVAudioPlayer, mais il ne semble pas que quelque chose d'important soit fait avec OpenAL non plus.

J'ai essayé de résoudre ce problème en libérant le AVAudioPlayer et en le remplaçant par un autre qui fait référence au même fichier, utilise le même volume et reprend à la même heure dans le fichier. Cependant, après quelques secondes, ce joueur jette également l'erreur ci-dessus. Passer à une nouvelle chanson, d'autre part, crée un joueur pleinement fonctionnel, qui n'a aucun problème.

Ma question est: que signifie l'erreur -50 dans ce contexte, ou comment voulez-vous comprendre ce que cela signifie?

(Si cela signifie quelque chose, le jeu doit fonctionner au minimum sur iOS 3.1.2).


Nous avons essayé de désactiver la partie OpenAL du code; ça n'a pas aidé.

code de la bibliothèque audio est disponible publiquement à http://libxal.svn.sf.net/svnroot/libxal/trunk/

Répondre

1

Nous avons réussi à gâcher quelque chose au niveau C++. Cela a probablement causé la corruption de la mémoire dans AVAudioPlayer sans réellement écraser le jeu, et se comporter de la même manière sur le simulateur et le périphérique. Nous avons corrigé cela et AVAudioPlayer fonctionne maintenant.