|
||
|
|
|
|||||||
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
|
Herramientas |
|
#1
|
||||
|
||||
|
Botón sonido que reproduzca solo en touch.
Hola, soy relativamente nuevo en la programación para Android y "termine" el layout y todo eso de mi aplicación.
El problema que tengo ahora es que no logro encontrar la forma de poder poner un boton el cual reprodusca un sonido solo mientras se lo mantiene presionado. Es decir, si lo pongo con la funcion start() el sonido iniciaria, pero se seguiria reproduciendo al levantar el dedo. Y lo que yo quiero es que al levantar el dedo se pare, y en caso de que yo quiera apretarlo de nuevo empiece desde el principio nuevamente... Alguien tiene alguna idea/guia de como puedo llegar a lograr este tipo de tarea? Agradezco la ayuda. Ah, y por cierto, en Eclipse aveces me pasa que como que se tilda un poco todo y no me muestra correctamente las cosas. Me hace reiniciar todo para ver bien de nuevo, alguna solución a eso? O.o Saludos, Gracias. |
|
|
|
#2
|
||||
|
||||
|
En vez del onClick tienes que usar el onTouchListener, con eso puedes detectar los eventos de pulsar y levantar el dedo en el botón como si de cualquier otra vista se tratara.
Para parar el sonido, creo que hay un método stop al que le pasas la referencia del sonido en reproducción y lo para.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
|
|
#3
|
||||
|
||||
|
En vez del onClick tienes que usar el onTouchListener, con eso puedes detectar los eventos de pulsar y levantar el dedo en el botón como si de cualquier otra vista se tratara.
Para parar el sonido, creo que hay un método stop al que le pasas la referencia del sonido en reproducción y lo para. ![]() Necesito que el boton suene mientras se lo tiene pulsado y deje de sonar cuando se lo deja de pulsar Gracias!. |
|
#4
|
||||
|
||||
|
Supongo que no me he expresado bien yo
![]() Con el listener onTouchListener puedes saber cuándo le ponen el dedo encima al botón y cuándo se lo quitan. Con el start y con el stop del sonido lo inicias y lo detienes. Llama al start cuando pongan el dedo y llama al stop cuando lo quiten...
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
|
|
#5
|
||||
|
||||
|
Supongo que no me he expresado bien yo
![]() Con el listener onTouchListener puedes saber cuándo le ponen el dedo encima al botón y cuándo se lo quitan. Con el start y con el stop del sonido lo inicias y lo detienes. Llama al start cuando pongan el dedo y llama al stop cuando lo quiten... ![]() Ahora... Estuve probando intentar hacer eso que me dijiste, pero tengo un error con los "}" y los ")" Que cuando lo arreglo me tira que la declaracion del boton esta mal, no se si me explico, pero para ser mas claro pongo una imagen: ![]() Si alguien tiene idea por que no me deja ponerlo o donde esta el error lo agradeceria, ya que me pase un largo rato intentando solucionarlo y leyendo... (Por cierto, si se pueden fijar si esta bien hecho el OnTouch seria genial) Saludos. |
|
#6
|
||||
|
||||
|
Lo mejor que puedes hacer para no liarte, es implementar las interfaces, para ello haz esto:
public class MiActivity extends Activity implements OnClickListener,OnTouchListener { una vez que escribas esto, si no te sabes de memoria los metodos que tienes que implementar, te saldra un error sobre la palabfra MiActivity, seguidamente mantienes el raton sobre MiActivity y saldra la opcion de "add unimplemented methods" y ya sobre ellos evaluas que View capto el evento mediante un IF. No se si me he explicado bien, te pongo un ejemplo: Código:
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.View.OnClickListener;
public class MiActivity extends Activity implements OnClickListener,OnTouchListener{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.adivinar);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
}
|
![]() |
Estás aquí
|
||||||
|
||||||