2009-06-17 7 views
3

J'ai une question rapide: Je charge un fichier mp3 dans un objet NSData et ensuite je le joue en utilisant AVAudioPlayer dans mon jeu. Chaque seconde ou deux, le taux de trame baisse et vous pouvez voir un bégaiement sur l'écran. Ce n'est pas un ralentissement majeur, mais clairement perceptible et perturbant le gameplay. Ne pas lire la piste musicale avec AVAudioPlayer ne montre aucun ralentissement.AVAudioPlayer - Drop in Framerate

Comment puis-je empêcher cela?

Merci.

Florian

Répondre

7

Pour référence future, voici la solution:

Réglage de la catégorie de la session audio à kAudioSessionCategory_AmbientSound (pour permettre la musique iPod à jouer simultanément) désactive en quelque sorte l'accélération matérielle MP3. Le réglage de la catégorie audio sur kAudioSessionCategory_SoloAmbientSound résout ce problème, mais ne permet pas la lecture de l'iPod. Je définis maintenant la catégorie de session audio selon que la musique de fond est activée ou désactivée pour permettre la lecture simultanée de l'iPod.

0

Le format MP3 est un format audio codé/compressé. Vous pouvez essayer soit de réduire le taux d'échantillonnage (pour istance, au lieu de 128 kb/s essayer 64 kb/s) ou passer à un format non codé tel que pcm linéaire. Les inconvénients sont: une qualité audio inférieure dans le premier cas, une taille de fichier plus élevée dans le second cas. Mais cela peut aider à améliorer les performances globales de votre application.