AudioTrack, SoundPool ou MediaPlayer Qui dois-je utiliser?
J'ai besoin de lire plusieurs fichiers audio, avec une durée différente, comme 5 à 30 secondes. Et je veux régler le volume de façon indépendante pour le canal droit/gauche et également d'appliquer des effets comme la Réverbération ou de la Distorsion. Alors, Qui de l'API dois-je utiliser?
Aussi, je ne trouve pas trop de doc sur AudioTrack API. Savez-vous où puis-je trouver des exemples?
Thx.
Vous devez vous connecter pour publier un commentaire.
Sonore de la piscine est en fait une table de mixage audio. Il peut jouer de courtes séquences seulement, indépendamment de savoir si ils sont encodés au format ogg ou mp3 ou ils ne sont pas comprimées. Son pool toujours les stocker dans la mémoire non compressé, et vous devez savoir que la limite est de 1 MO. Si votre clip est trop gros dans la mémoire, son bassin se taisent, et vous trouverez d'erreur suivant:
"AudioFlinger n'a pas pu créer de la piste. statut: -12"
Media player joue flux et le décoder en temps réel. De sorte qu'il peut jouer beaucoup plus de clips, mais a besoin de la puissance du processeur pour elle.
Donc Media player est mieux pour la musique de fond, tandis que le son de la piscine est mieux fort court, les effets audio (clics, des explosions, des boucles sonores). En outre, son pool pouvez jouer à plus de clips à la fois, et a du volume et le contrôle de la vitesse. Il peut également lire des boucles.
Une remarque: vous ne pouvez pas jouer de la musique à partir de sons de la piscine si le clip n'est pas entièrement chargé et décodé. Si vous devez utiliser OnLoadCompleteListener (Android 10 ou au-dessus) pour le vérifier. Si vous essayez de jouer à son avant de, il est décodé, le son de la piscine sera muet.
Media player ne souffrent pas de ces problèmes.
En outre à ce que les autres réponses suggérées, une différence entre le lecteur multimédia et SoundPool est que dans MediaPlayer, vous ne pouvez pas lire un clip audio quand il est déjà en train de jouer (cette fonctionnalité peut être utile, surtout dans les jeux). MediaPlayer besoins du clip de finir complètement avant de pouvoir être joué à nouveau. Je pense que l'information est fournie dans le site officiel.
Cependant, SoundPool n'a pas un tel problème et aussi j'ai remarqué que SoundPool audio, juste au moment où il est appelé (j'ai parfois remarqué un léger retard quand j'ai utilisé MediaPlayer ).
Je pense que c'est (une partie de) la raison pourquoi les gens disent que SoundPool est mieux pour les sons courts comme dans les jeux.
Espérons que cela aide:)
Je recommanderais MediaPlayer pour une telle durée.
Vous pouvez trouver plus d'infos ici: Comment le mauvais est Android SoundPool? Quelle alternative à l'utilisation?
MediaPlayer ne prend pas en charge le réglage du volume pour multible canaux.
Je pense que SoundPool est la seule chose qui convient à vos besoins.
EDIT: Ouais, vous avez besoin d'un SoundPool, lisez ceci:
http://www.wiseandroid.com/post/2010/07/13/Intro-to-the-three-Android-Audio-APIs.aspx