Musica “de fondo” en tú App Android

androidmusica

Seguramente al desarrollar alguna App para Android has pensado en hacerla un poco más agradable al usuario y para esa labor que mejor que  una típica canción de ascensor? O puede que lo que estés desarrollando sea un juego Android y quieras poner una música de fondo  o poner efectos de sonido,  pero sea cual sea tu motivo el objeto que vas a utilizar es MediaPlayer.

 

Es muy fácil de implementar y utilizar y tan solo tendremos que tener cuidado de no cometer los dos errores típicos que todos hemos cometido al usar este objeto… el primer error es sencillo y se da al querer “linkear” la canción desde una ubicación especifica y no desde la  ubicación que marca Android, por lo que en primer lugar crearemos la carpeta “raw” dentro de el directorio “res” de nuestro proyecto, y una vez dentro arrastramos nuestra canción dentro y ya estará lista para utilizar.

cancion

Ahora el segundo error mas común se da a la hora de codear y es querer poner la extensión “.mp3” en este caso dentro del codigo, pero como es lógico si pusiéramos “R.raw.cancion.mp3” lo que estaríamos haciendo es buscar nuestra música con nombre “mp3” dentro del directorio “cancion” , así que recuerda no poner la extensión de tu canción favorita en el código.

Llegó el momento de codear, existen muchas formas de hacer esto, pero la manera mas fácil y rápida es la que pongo a continuación:

Source   
  1. @Override
  2.     protected void onCreate(Bundle savedInstanceState) {
  3.         super.onCreate(savedInstanceState);
  4.         setContentView(R.layout.activity_main);  
  5.  
  6.         MediaPlayer mediaPlayer;
  7.         mediaPlayer = MediaPlayer.create(this,R.raw.cancion);
  8.         mediaPlayer.setLooping(true);
  9.         mediaPlayer.setVolume(100,100);
  10.         mediaPlayer.start();
  11.  
  12.     }

Toda la informacion sobre MediaPlayer | Android Dev

10 comentarios

  • ¿Canción en una app?

    Como curiosidad esta guay. Pero si no es juego, deberían meter en la carcel al desarrollador que haga eso. Es como cuando a la gente le dio por poner música en los blogs… Quita, quita.

    • Opino igual que tu Julio, pero siempre estará el típico desarrollador que crea la APP de “música de ascensor” que no vale para nada…

  • Y como le haces para detener la música al cerrar la aplicación? o no resolverás eso?

  • Hola amigo, muy buena la explicacion, bueno con respecto a sus opniniones estoy desarrollando un juego y bueno tengo que ponerle musica, he hestado viendo por mi cuanto las clases y metodos de MediaPlayer pero no he podido hacer que cuando salga de la aplicacion la musica se detenga de inmediato, se tarda como 2 segundos y ademas como le puedo hacer para que al cambiar de pantalla , entrar al juego o a las configuraciones, la musica no se detenga? Gracias amigo y felicitaciones por el sitio

  • Puede tene su utilidad siempre que a algún desarrollador no se le vaya la pinza, como la moda de la música en los blogs

  • Como controlo la música de fondo al presionar el botón de HOME desde cualquier actividad??? ósea que se detenga al presionar ese botón ya que la APP pasa a segundo plano y que continúe cuando la APP este en primer plano, gracias!!

    • Para pausar la música al pasar a segundo plano, en el método onPause() se llama a otro método de otra clase que descienda de SurfaceView e implemente SurfaceHolder.Callback, que se puede llamar pausarJuego() o como quieran. En dicho método se pausa el MediaPlayer con mediaPlayer.pause(), así al quitar la aplicación se para la música.

      Para reanudar la música, con el método surfaceCreated(SurfaceHolder holder) (en la segunda clase), se ejecuta mediaPlayer.start() y listo.

      Obviamente, el MediaPlayer habría que pasarlo a la segunda clase.

      Espero haberme explicado!

  • Cómo puedo hacer que la música no termine?

  • Hola que tal, una pregunta como hago para que se detenga la música al cerrarla, gracias, espero tu respuesta.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *