Как создать эквалайзер для Android

Я хочу создать простой эквалайзер для Android. Как мне это сделать?

Попробуйте найти некоторые методы в классе MediaPlayer. Но все мои попытки провалились.

4 ответа

Решение

Простой ответ... вы не можете сделать это с помощью фреймворка или Java (потому что в Android нет поддержки JMF). Вы должны использовать NDK и JNI для компиляции нативной библиотеки с поддержкой эквалайзера. Если вы знаете C/C++, существует множество библиотек, которые будут предоставлять эту функциональность, но если вы не знаете C/C++ или у вас есть средства, чтобы заплатить кому-то за это, я бы порекомендовал вам перейти к чему-то другому по средствам. Есть даже несколько рабочих примеров для Android, если вы посмотрите вокруг, которые используют libmpg123... но libmpg123 предоставляет только интерфейс эквалайзера для mp3. Я обнаружил, что оно довольно глючное в целом и поставило под угрозу стабильность приложения таким образом, что оно заблокировало Android, и мне пришлось бы тянуть батарею, чтобы перезагрузить телефон. Кроме того, было много звукового отсечения даже с ровным эквалайзером. Это мой опыт...

В Android встроен механизм квалификатора, хотя он не находится в классе MediaPlayer, поскольку сам класс находится в пакете android.media.audioFx.

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

Вы можете создать эквалайзер, как

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

Посмотрите на полный пример

Надеюсь, что ссылка ниже будет полезна для вас.

https://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/AudioFxDemo.html

Другие вопросы по тегам