Je suis conscient que SoundPool était destiné à gérer les petits sons comme fx et je me suis assuré que mes 4 clips sonores que je veux jouer un par un dans une séquence sont assez petits.et encore sur les problèmes de mémoire avec SoundPool
J'ai utilisé la qualité ogg 0 et les clips sont 35kb, 14kb, 21kb et 23kb totalisant 92kb d'audio compressé. Je n'ai aucune idée de comment estimer la taille non compressée, mais ça ne devrait pas être beaucoup, n'est-ce pas? Donc, quand je joue 4 sons en séquence, cela fonctionne bien pour les 9 premières fois (9 séquences x 4 sons) mais commence à causer des problèmes de mémoire sur la séquence de neuf pour l'un des sons. C'est toujours la séquence 9 quand je commence à voir l'erreur.
Quelle est la meilleure façon de gérer cela? J'ai quelques idées:
1) compress sons encore plus (qualité ogg -1 et mono au lieu de stéréo)
2) décharger et charger des sons en utilisant constamment SoundPool.load et SoundPool.unload
3) libérer et recréer le temps de l'instance soundPool à partir du temps
Y at-il autre chose que je peux faire? Il est embarrassant que api android ne peut pas gérer si petits clips. Je me demande comment les gens créer des jeux avec beaucoup d'effets sonores ...
erreurs ressemblent que:
ERREUR/AudioFlinger (35): pas assez de mémoire pour AudioTrack size = 1048640 DEBUG/MemoryDealer (35) : AudioTrack (0x25018, size = 1048576)
Merci cela fonctionne pour moi. Avant que mon fichier son se coupe. Mais j'ai converti et rééchantillonné ce m4a de 44 à 22 et maintenant ça marche sans se faire couper. –