M0286_Libro Curso
Android
case KeyEvent. KEYCODE_A : resId = R.raw. a ; break; case KeyEvent. KEYCODE_S : resId = R.raw. s ; break; case KeyEvent. KEYCODE_D : resId = R.raw. d ; break; case KeyEvent. KEYCODE_F : resId = R.raw. f ; break; default: return super.onKeyDown(keyCode, event); } // liberamos cualquier recurso anterior de MediaPlayer if (mp != null) { mp.release(); } // Creamos un nuevo MediaPlayer para reproducir este sonido mp = MediaPlayer. create (this, resId); mp.start(); // Indicamos que esta tecla ya fue controlada return true; } Con este método primero seleccionamos un recurso (mp3) en base a la tecla que fue pulsada. Desde ese momento, llamamos al método release() para detener cualquier sonido que se estuviese reproduciendo y liberamos cualquier recurso que estuviese asociado al MediaPlayer . Si no hiciésemos esto, el programa fallaría, ya que a continuación, cuando utilizamos el método create() para crear un nuevo MediaPlayer , utilizando el recurso seleccionado y llamamos al método start() (este método es asíncrono, por lo tanto, devuelve inmediatamente con independencia de lo que tarde el sonido en terminar) tendría todavía el recurso anterior y daría fallo al llamarlo. Para dejar un poco más bonita la aplicación, en la pantalla principal vamos a poner unas pequeñas instrucciones de cómo interactuar con la aplicación. Debemos modificar el resource y añadir la siguiente string al archivo main.xml :
118
Made with FlippingBook - Online catalogs