Android – Ecualizador usePreset no funciona (Sin cambios en el efecto de sonido)

Estoy trabajando en la aplicación de radio streaming. Todo está funcionando bien, excepto que el cambio del efecto del ecualizador no afecta al sonido.

Cambiar el efecto del ecualizador llamando a usePreset (preset) no hace cambios en los efectos de sonido.

Aunque no hay error, por qué usePreset no cambia los efectos de sonido.

He probado en samsung galaxy sII con 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()); } } 

Aprecie su ayuda para identificar el problema.

EDITAR Este problema no se ha resuelto todavía. No encontré ningún código de ejemplo que explicara el uso del Preset del ecualizador.

Cualquier referencia al ejemplo de código que utilice la opción Preset bienvenido.

Este es un código fuente completo para el ecualizador, espero que esto te ayude

Tengo el mismo problema. Cuando lo cargue en el emulador producir un error que realmente no sé por qué, siempre dice … audiofx.Equalizer. Y audiofx.AudioEffect. o algo similar. Pero he descubierto que si tienes otro reproductor multimedia como n7player en mi caso, intenta cerrarlo e intentar de nuevo tu reproductor multimedia. En mi caso funciona, pero creo que tiene que ser un método para conseguir un ecualizador que esté activo.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.