2010-08-05 25 views
15

Je veux créer un égaliseur simple pour android. Comment puis-je le faire? Essayez de trouver des méthodes dans la classe MediaPlayer. Mais toutes mes tentatives ont échoué.Comment créer un égaliseur pour android

+0

Vous allez devoir trouver une question plus précise pour obtenir une bonne réponse ici . Qu'avez-vous essayé exactement? qu'est-ce qui a échoué? Qu'essayez-vous exactement d'accomplir? –

+2

Je suis en train d'écrire un lecteur multimédia pour Android. Et j'ai besoin de créer Equalizer pour ça. Je ne trouve pas de moyens standard pour modifier le flux audio dans Android. J'ai trouvé quelques égaliseurs J2SE. Mais en utilisant des classes spécifiques à J2SE. – MistaGreen

+0

Bonjour, je suis à la recherche de la même implémentation. S'il vous plaît fournissez-moi une idée de base sur la façon de mettre en œuvre cela? – AndiM

Répondre

5

Réponse simple ... vous ne pouvez pas le faire avec le framework ou avec Java (car il n'y a pas de support JMF sous Android). Vous devez utiliser NDK et JNI pour compiler une bibliothèque native avec le support de l'égaliseur. Si vous connaissez le C/C++, il y a beaucoup de bibliothèques qui offrent cette fonctionnalité, mais si vous ne connaissez pas le C/C++ ou que vous n'avez pas les moyens de payer quelqu'un, je vous recommande de passer à autre chose. Il y a même quelques exemples de travail pour Android, si vous regardez autour, qui utilisent libmpg123 ... mais libmpg123 ne fournit qu'une interface d'égalisation pour les mp3. J'ai trouvé que c'est assez bogué en général et compromis la stabilité de l'application de telle sorte qu'il verrouillerait android et je devrais tirer la batterie pour redémarrer le téléphone. En outre, il y avait beaucoup d'écrêtage audio, même avec l'égaliseur plat. C'est mon expérience ...

+0

Salut, Merci pour ce commentaire, mais j'ai plus de recherche pour la bibliothèque c/C++ pour l'égaliseur android, mais je ne trouve pas. Si vous soutiendrez alors je pense que mon problème serait résolu, veuillez vous demander, si vous avez peu de temps pour aider, s'il vous plaît partager quelques informations pour la bibliothèque. Merci encore ... –

+0

utiliser la classe d'égaliseur bro – Learner

13

Android a intégré dans le moteur de équalizer, mais il ne se trouve pas dans la classe MediaPlayer, becouse il est une classe se trouve dans le paquet android.media.audioFx.

http://developer.android.com/reference/android/media/audiofx/Equalizer.html

+2

Merci. Mais cela ne fonctionne que pour les versions Android <= 2.3. Ce n'est pas si important maintenant, de cause. – MistaGreen

+0

@MistaGreen oui vous avez raison.Si vous résoudre ce problème signifie s'il vous plaît aidez-moi –

5

Vous pouvez créer un égaliseur comme

Equalizer equalizer = new Equalizer(0,mediaplayer.getAudioSessionId()); 

equalizer.setEnabled(true); 

equalizer.getNumberOfBands(); //it tells you the number of equalizer in device. 

equalizer.getNumberOfPresets();//like Normal Classic,Dance Flat,Folk Heavy Metal,Hip Hop,Jazz, Pop, Rock 

http://developer.android.com/reference/android/media/audiofx/Equalizer.html

Have a look at full example

+0

obtenir une erreur sur nougat android. – AkhilGite

+0

quelle erreur vous obtenez. Envoyer un journal – Nepster

+0

vous pouvez voir ici [link] (http://stackoverflow.com/questions/40967977/java-lang-unsupportedoperationexception-audioeffect-invalid-parameter-operatio). J'ai posé une question sur stackoverflow – AkhilGite