Cómo reproducir audio en las Apps Android


Hola que tal, a raíz del artículo donde se trató la forma de trabajar en Android con el sensor de proximidad, hoy te mostraré cómo hacer que una App reproduzca algún sonido y así agregarle esta característica al demo que se trabajó en ese artículo, para hacerla más útil y llamativa.

La idea es hacer que al activarse el sensor se reproduzca un sonido avisando que alguien ha tomado el dispositivo, para hacerla más parecida a un “Anti-Ladrón”.

Primero que todo te mostraré cómo reproducir audio en una nueva App para tratar mejor el objetivo de esta entrada.
Para entrar en materia debes crear un nuevo proyecto en el ADT y agregar un botón para reproducir el sonido. Quedaría justo como el demo de la App que se desarrolló en el artículo anterior, solo cambiando el nombre del botón.

Visual

Visual de la app

Fig1 Visual de la app

Luego debes crear una carpeta que va a contener los archivos de audio. Esto se logra dando clic derecho encima de la carpeta res, paso seguido New/Folder, y se escribe como nombre de la carpeta raw (Ver Fig2).

Atención: No poner otro nombre o de lo contrario la App no reconocerá la carpeta.

Después se localiza el archivo de audio que se quiere reproducir y se copia/pega manualmente hacia la carpeta recién creada en el proyecto, por defecto este se encuentra en la ruta: C:\Users\MYUSER\workspace\MYPROYECTO\res\raw.

Por último presionamos F5 para actualizar el proyecto, con esto logramos que la App reconozca que tiene un recurso nuevo, en este caso el archivo de audio que copiamos dentro de la carpeta.

Estructura del proyecto

Fig2 Estructura del proyecto

Código Java

public class MainActivity extends Activity {

/*Se crean los objetos necesarios, el primero es
un botón que se va a utilizar para capturar del visual 
y el segundo es un nuevo componente que como su nombre
indica (MediaPlayer) va a servir para reproducir sonidos.
*/

	Button play;
	MediaPlayer media; 

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		/*Capturo con esta función elementos del visual gracias 
		al id que poseen los componentes
		*/

		play=(Button) findViewById(R.id.button1);

		/*Se le agrega un evento OnClick al botón */

		play.setOnClickListener(new OnClickListener() {


			@Override
			public void onClick(View arg0) {
			
			/*Se crea un MediaPlayer, se específica el contexto 
			donde se trabaja y de donde se obtendrá el sonido, 
			para eso se creó anteriormente la carpeta raw con el 
			archivo de audio y por último se reproduce el sonido.
			*/

				media=MediaPlayer.create(MainActivity.this,R.raw.online);
				media.start();

			}	
		});
	}
}

Solo falta compilar la App y verás el resultado, si se quiere que la App del artículo anterior al acercarse alguien reproduzca un sonido se haría lo mismo:

  • Crear la carpeta raw y copiarle el sonido. No olvides presionar F5
  • Escribir el código que reproduce el sonido dentro de la condición de detección del sensor.

Quedaría algo como esto:

public void onSensorChanged(SensorEvent evento) {
	// TODO Auto-generated method stub

	float valor = Float.parseFloat(String.valueOf(evento.values[0]));
	media = MediaPlayer.create(MainActivity.this, R.raw.ok);

	if (valor <= 10)
	   fondo.setBackgroundColor(Color.BLACK);
	else {
	   fondo.setBackgroundColor(Color.RED);   
	   media.start();
	 }
}

/*Recuerda declarar la variable de tipo MediaPlayer*/

Conclusiones

Espero te haya sido útil el artículo donde aprendiste un poco más sobre el trabajo en Android. Como curiosidad te comento que hoy en día casi todas las Apps utilizan audio de una forma u otra para interactuar con el usuario final, ya sea en notificarnos de acciones terminadas o eventos de importancia, entre otras.

Te recomiendo no dejes de agregarle audio a tus Apps, ejemplo a los botones de OK, alertas, etc. Es una buena práctica que hace que las aplicaciones sean más accesibles para el usuario. Cualquier duda o sugerencia no dudes dejarla en los comentarios.

Demo sonidos a las Apps