Sonido al presionar un boton

Hola gente.
Les cuento...
Acabo de terminar de programar un piano, pero la cosa es que al momento de presionar el boton este libera el sonido al levantar el dedo, y lo que quiero es que al momento de presionar sobre la tecla (boton) suene.

Y la otra es que quiero poder presionar 2 teclas al mismo tiempo, seguramente esto se hace con Threads. Estoy tratando de realizarlo con AsyncTasks pero no logro resolverlo.

Espero me puedan ayudar, Saludos.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de iocio

Sonido...

Has tenido suerte... hace unos días tuve que añadir a una GUI unos sonidos para cuando pulsabas un boton normal, cuando saltaba algun error o cuando salia algun dialogo de pregunta. Utilice una clase que extendia de la clase Threads y quedó algo tal que asi: (no se si será lo mas optimo, pero no se me ocurrio otra cosa)

 

Lo que tienes que hacer ahora en la clase donde quieres que suena es declarar un objeto del tipo FuncionalidadSonido fs = new FuncionalidadSonido(null) y pasarle null como parametro ya que he creado metodos llamandose a si mismo con los distintos sonidos.

Que consigues? que puedan sonar dos sonidos distintos ya que "fs" funciona como Thread padre que llama a el resto de los Thread hijos. Debes tener en cuenta que si el sonido es muy largo, no se parara a menos que llames al metodo de pararActual().

Si tienes algun problema dimelo. El funcionamiento en alguna clase seria el siguiente:

 

Lo que comentas de que quieres que suene cuando presiones la tecla en vez de cuando justo levantas el dedo de ella es cambiar el keyevent.

Tienes estos 3 tipos referentes a los keyevent:

keyPressed - cuando pulsas la tecla hacia abajo

keyReleased - cuando levantas la tecla

keyTyped - El caracter unicode que representa esta tecla se manda por el teclado al sistema de entrada

Despues de ver la respuesta

Despues de ver la respuesta de iocio encontr'e esto

La diferencia es que AudioPlayer es un api no publico y te puede causar problemas en el futuro ( lo descontinuan, ya no sale, no esta disponible, tiene bugs. etc. etc. )

Pero basicamente el mecanismo es el mismo.

Imagen de iocio

gracias

Esta bien saberlo. Me lo apunto para la proxima.

Saludos