Android – Эквалайзер usePreset не работает (без изменения звукового эффекта)

Я работаю над потоковым радиоприложением. Все работает отлично, за исключением того, что изменение эффекта эквалайзера не влияет на звук.

Изменение эффекта эквалайзера при вызове usePreset (предустановка) не вносит никаких изменений в звуковые эффекты.

Несмотря на отсутствие ошибки, почему usePreset не меняет звуковые эффекты.

Я тестировал в samsung galaxy sII с 4.0.3.

public void startPlayer() { // // Check whether we can acquire the audio focus // to start the player // if (!requestAudioFocus()) { return; } if (null != mAudioPlayer) { if (mAudioPlayer.isPlaying()) { mAudioPlayer.stop(); } mAudioPlayer.reset(); } else { mAudioPlayer = new MediaPlayer(); mAudioPlayer.reset(); } try { notifyProgressUpdate(PLAYER_INITIALIZING); try { mEqualizer = new Equalizer(0, mAudioPlayer.getAudioSessionId()); mEqualizer.setEnabled(true); Log.d(TAG, "Audio Session ID " + mAudioPlayer.getAudioSessionId() + "Equalizer " + mEqualizer + " Preset " + mEqualizer.getCurrentPreset()); } catch (Exception ex) { mEqualizer = null; } mAudioPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mAudioPlayer.setDataSource(mCurrentTrack.getStreamURL()); // // Add the Listener to track the player status // mAudioPlayer.setOnCompletionListener(this); mAudioPlayer.setOnBufferingUpdateListener(this); mAudioPlayer.setOnPreparedListener(this); mAudioPlayer.setOnInfoListener(this); mAudioPlayer.setOnErrorListener(this); notifyProgressUpdate(PLAYER_BUFFERING); mAudioPlayer.prepareAsync(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } //Get the available presets from the equalizer public String[] getEqualizerPresets() { String[] presets = null; short noOfPresets = -1; if (null != mEqualizer) { noOfPresets = mEqualizer.getNumberOfPresets(); presets = new String[noOfPresets]; for (short index = 0; index < noOfPresets; index++) { presets[index] = mEqualizer.getPresetName(index); } } return presets; } //Set the user preferred presets public void setEqualizerPreset(int position) { if (null != mEqualizer) { Log.d(TAG, "setting equlizer effects " + position); Log.d(TAG, "Equalizer " + mEqualizer + " set Preset " + position); mEqualizer.usePreset((short)position); Log.d(TAG, "Equalizer " + mEqualizer + " current Preset " + mEqualizer.getCurrentPreset()); } } 

Признайте свою помощь, чтобы определить проблему.

EDIT Эта проблема еще не решена. Я не нашел код примера, который объясняет использование предустановленного эквалайзера.

Любая ссылка на образец кода, который использует Preset welcome.

Это полностью исходный код для эквалайзера, надеюсь, это поможет вам

У меня такая же проблема. Когда я загружаю его на эмулятор, он вызывает ошибку, о которой я действительно не знаю почему, она всегда говорит … audiofx.Equalizer. И audiofx.AudioEffect. Или что-то подобное. Но я обнаружил, что если у меня есть другой медиаплеер, такой как n7player, попробуйте закрыть его и повторите попытку вашего медиаплеера. В моем случае это работает, но я думаю, что это должен быть один из способов получить активный эквалайзер.

Intereting Posts
Подключение к меню контактов android Поведение браузеров мобильных приложений с сеансами Google и выбор учетной записи Установить inputType для EditText? Могу ли я использовать кнопку пожертвования PayPal в своем приложении для Android в Google Play? Использование SMB-протокола в URL-адресе при использовании библиотеки JCIFS на Android Существуют ли шаблоны кода Android для Eclipse? Можно ли смоделировать GCM-получение из командной строки adb shell / am? Я получаю сообщение об ошибке Как предотвратить восстановление фрагментов при выборе из NavigationDrawer? Всплывающее окно по входящему вызову TextInputLayout не показывает сообщение об ошибке после очистки Как реализовать меню вкладки Android без устаревшего tabhost Добавление пользовательского типа mime в контакты в android Как установить фоновый индикатор состояния как цвет градиента или вывести его в андроид Единство3d – Отдельный поток пользовательского интерфейса для Android Является ли масштабирование в браузере таким же, как масштабирование на мобильном устройстве?