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  
Viejo 20/08/12, 06:02:16
Avatar de Ifiuse
Ifiuse Ifiuse no está en línea
Usuario novato en la web
Mensajes: 5
 
Fecha de registro: ago 2012
Mensajes: 5
Modelo de smartphone: S2
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
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.
Responder Con Cita


  #2  
Viejo 20/08/12, 10:03:42
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
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.
Responder Con Cita
  #3  
Viejo 20/08/12, 15:41:48
Avatar de Ifiuse
Ifiuse Ifiuse no está en línea
Usuario novato en la web
Mensajes: 5
 
Fecha de registro: ago 2012
Mensajes: 5
Modelo de smartphone: S2
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por mocelet Ver Mensaje
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.
Hola, Gracias por la ayuda pero creo que no me exprese bien.

Necesito que el boton suene mientras se lo tiene pulsado y deje de sonar cuando se lo deja de pulsar

Gracias!.
Responder Con Cita
  #4  
Viejo 20/08/12, 15:48:47
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
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...
Responder Con Cita
  #5  
Viejo 21/08/12, 04:38:22
Avatar de Ifiuse
Ifiuse Ifiuse no está en línea
Usuario novato en la web
Mensajes: 5
 
Fecha de registro: ago 2012
Mensajes: 5
Modelo de smartphone: S2
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por mocelet Ver Mensaje
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...
Primero que nada, muchas gracias por la ayuda, esta ves si te entendi.

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.
Responder Con Cita
  #6  
Viejo 26/08/12, 14:11:48
Avatar de goltara
goltara goltara no está en línea
Usuario novato en la web
Mensajes: 29
Compra y venta: (1)
 
Fecha de registro: ene 2011
Mensajes: 29
Modelo de smartphone: samsung galaxy s
Tu operador: Pepephone
Mencionado: 0 comentarios
Tagged: 0 hilos
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
        
    }



}
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 15:03:24 (GMT +1)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007