2011-03-09 21 views
5

tengo este códigojuego sonido mientras se presiona el botón -Android

package com.tct.soundTouch; 

import android.app.Activity; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.view.MotionEvent; 
import android.view.View; 
import android.view.View.OnTouchListener; 
import android.widget.Button; 

public class main extends Activity implements OnTouchListener { 

    private MediaPlayer mp; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     final Button zero = (Button) this.findViewById(R.id.button); 
     zero.setOnTouchListener(this); 

     mp = MediaPlayer.create(this, R.raw.sound); 

    } 

    @Override 
    public boolean onTouch(View v, MotionEvent event) { 

     switch (event.getAction()) { 

     case MotionEvent.ACTION_DOWN: 
      mp.setLooping(true); 
      mp.start(); 

     case MotionEvent.ACTION_UP: 
      mp.pause(); 
     } 

     return true; 
    } 

} 

y funciona, pero no lo que yo esperaba. El sonido se reproduce pero solo cada vez que presiono el botón. Mi idea es Mientras presiono el botón se reproduce el sonido, cuando detengo la acción (dedo fuera del botón) pausa de música.

¿Alguna idea por favor?

gracias

+2

Es sólo tiene que añadir el retorno fiel a cada caso, trabaja ahora – anvd

+0

Sí, o romper las declaraciones . Cualquiera de los dos funcionará. – kcoppock

+0

@Fel Probablemente deberías publicar eso como una respuesta y aceptarlo si eso resolvió tu problema. –

Respuesta

3

Esto debería funcionar (había algo mal con sus interruptores-casos creo):

@Override 
public boolean onTouch(View v, MotionEvent event) 
{ 

    switch (event.getAction()) 
    { 

    case MotionEvent.ACTION_DOWN: 
    { 
     mediaPlayer.setLooping(true); 
     mediaPlayer.start(); 
    } 

    break; 
    case MotionEvent.ACTION_UP: 
    { 
     mediaPlayer.pause(); 
    } 
    break; 
} 

return true; 
} 
Cuestiones relacionadas