Reproducción del sonido predeterminado android del botón, haciendo clic en el método onTouch ()

En mi aplicación android tengo algunos botones, que deben trabajar con el método onTouch () , por supuesto, necesito cambiar el texto del botón, cuando el dedo en ACTION_DOWN posición. Pero estos botones deberían reproducir el sonido predeterminado androide del botón de clic (como en el método onClick ()). ¿Dónde puedo encontrar ese sonido? Creo que debe estar en SDK, pero ¿cómo puedo encontrarlo? ¿Y qué métodos son mejores para tal operación? Estoy usando MediaPlayer.

Listado:

public boolean onTouch(View v, MotionEvent event) { int action = event.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: addTextShadow(v); Log.v(LOG_TAG, "ACTION_DOWN"); break; case MotionEvent.ACTION_MOVE: clearTextShadow(v); isMoved = true; Log.v(LOG_TAG, "ACTION_MOVE"); break; case MotionEvent.ACTION_UP: Log.v(LOG_TAG, "ACTION_UP"); if (!isMoved) { clearTextShadow(v); if (v.getId() == R.id.btn_new) { Log.v(LOG_TAG, "New pressed"); playSound(); //MY METHOD TO PLAY SOUND } else if (v.getId() == R.id.btn_saved) { Log.v(LOG_TAG, "Saved pressed"); } else if (v.getId() == R.id.btn_random) { Log.v(LOG_TAG, "Random pressed"); } } isMoved = false; break; } return true; } 

Y mi método playSound ():

  public void playSound(){ if (mp != null) { mp.release(); mp = null; } try { mp = MediaPlayer .create(MyActivity.this, R.raw.sound); //BUT HERE I NEED DEFAULT SOUND! mp.start(); } catch (Exception e) { e.printStackTrace(); } } 

3 Solutions collect form web for “Reproducción del sonido predeterminado android del botón, haciendo clic en el método onTouch ()”

Utilice este código en su método onTouch ():

 view.playSoundEffect(android.view.SoundEffectConstants.CLICK); 

Si simplemente está buscando un sonido Android preestablecido, entonces es mejor usar esta funcionalidad que le proporciona gratuitamente el framework. Hacer cualquier otra cosa, a menos que sea necesario para la personalización, simplemente resultaría en trabajar contra el marco en lugar de trabajar con él.

Utilice los sonidos predeterminados de /system/media/audio/

MediaPlayer o SoundPool ayudará a implementar la reproducción.

Considere el uso de view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY); .

Hará ambas cosas: reproducir el sonido predeterminado y vibrar si el usuario lo ha habilitado en la configuración global.

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