En mi aplicación Android tengo algunos botones que deberían funcionar con el método onTouch(), por supuesto necesito cambiar el texto del botón, cuando el dedo esté en la posición ACTION_DOWN. Pero estos botones deben reproducir predeterminado sonido de botón de clic de Android (como en el método onClick()). Donde 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.Reproducción del sonido android predeterminado del botón, haciendo clic en el método Toque()
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 reproducirSonido():
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();
}
}
¿Android no reproduce el sonido predeterminado de clic por 'predeterminado'? Al menos lo hace en ICS. –
Vishwa Patel, no, Android reproduce el sonido de clic predeterminado, cuando usamos onClickListener, pero no en TouchListener. Pruebo todos los programas con ICS (SGS2). – dmgmyza