Evento desencadenante cuando se presiona el botón en Android

Tengo el siguiente código para Android que funciona bien para reproducir un sonido una vez que se hace clic en un botón:

Button SoundButton2 = (Button)findViewById(R.id.sound2); SoundButton2.setOnClickListener(new OnClickListener() { public void onClick(View v) { mSoundManager.playSound(2); } }); 

Mi problema es que quiero que el sonido se reproduzca inmediatamente después de presionar el botón (tocar hacia abajo), no cuando se suelta (retocar). ¿Alguna idea sobre cómo puedo lograr esto?

Tal vez usando un OnTouchListener ? Supongo que MotionEvent tendrá algunos métodos para registrar un toque en el objeto.

  button.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub return false; } })) 

Deberías hacer esto: b es el botón.

 b.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN ) { mSoundManager.playSound(2); return true; } return false; } }); 

import android.view.MotionEvent;