Как создать эквалайзер для 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
Надеюсь, что ссылка ниже будет полезна для вас.