PDA

Ver la Versión Completa : [ CONSULTA ] Musica de Fondo


goltara
20/09/12, 16:31:15
Hola buenas tardes,

Me gustaría consultar cual la mejor manera de poner musica de fondo, es decir un tema de musica que corra de manera fluida a lo largo de la vida de toda la aplicación, he probado varios metodos pero ninguno consigue lo que quiero, el método que más me ha gustado ha sido el de usar un Service, pero ocurria una cosa y es que al apagar la aplicacion con el boton central, la música seguia escuchandose y no se como pararlo en ese caso.

El codigo es el siguiente:


import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
import android.widget.Toast;

public class MusicaDeFondo extends Service{

public MediaPlayer mp;

@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}

@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();

mp = MediaPlayer.create(this, R.raw.theme_cj);
mp.setLooping(true);

}

@Override
public void onDestroy() {
// TODO Auto-generated method stub

super.onDestroy();
mp.stop();
}

@Override
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub
super.onStart(intent, startId);
mp.start();

}



}despues sólo tengo que llamar en cada clase a:

startService(new Intent(this, MusicaDeFondo.class));

si quiero reproducir el sonido

y a:

stopService(new Intent(this, MusicaDeFondo.class));

si quiero parar el sonido.


El problema como he dicho antes es que al pulsar el boton de HOME no puedo parar el sonido, he probado en poner un onKeyUp() pero he leido que el boton de HOME no se puede "escuchar".

Espero que me podais decir algo, gracias!!!!

Celtium
21/09/12, 02:29:11
Hola

Esto no solo te pasa cuando le das al home, también te pasará al iniciar algún recurso del sistema como abrir un vídeo o mandar un correo, etc...

Yo lo controlo con un método global. Cada activity notifica a ese método el momento en que se abre, se cierra y la activity que va abrir. Según el estado el método para o inicia la música no la activity en particular.

Suerte ;)