entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

3votos

Pausar audio en una activity

Que tal, en mi app tengo un Toggle Button que activa y desactiva el audio y funcina bien:

mPlayer = MediaPlayer.create(this, R.raw.retro_game);
        soundHome.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (soundHome.isChecked()) {
                    mPlayer.start();
                } else {
                    mPlayer.pause();
                }
            }
        });

Ahora, quiero que al iniciar la Activity el sonido inicie, en onCreate() puse esto:

mPlayer = MediaPlayer.create(this, R.raw.retro_game);
mPlayer.start();

y quiero que igual con un button se pueda parar o reaundar, según el caso, peor mas me interesa parar el audio, a lo cual lo tengo así:

Onof.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mPlayer.isPlaying==true) {
                    mPlayer.pause();
                } else {
                   // lo que sea
                }
            }
        });

Eso no me funciona, no se si me pudieran ayudar o sugerir alguna otra manera de realizarlo.
De antemano muchas gracias.

2 Respuestas

3votos

cobasESP Puntos19650

Tienes la variable mediaplayer declarada al principio de la clase como publica, porque ese método esta bien montado, solo que a lo mejor no reconoce la variable mPlayer y antes te funcionaba porque dicha variable la parabas e iniciabas en el mismo método.

Aun asi, prueba a crear un flag de tipo booleano que le pongas a true en el oncreate y cada vez que se reproduzca la musica y lo cambies a false cuando la pauses, y cambias ese flag por el mPlayer.isplaying ya que a mi a veces me a fallado y no se porque, ademas no hace falta que pongas mPlayer.isplaying==true, ya que al ser un boolean con poner mPlayer.isPlaying ya te lo compara como true.

0voto

userTemp comentado

Gracias @cobasESP ya lo arreglé le quite lo del "true":

Onof.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (player.isPlaying()) {
                    player.pause();
                } else {
                    player.start();
                }
            }

gracias de antemano

1voto

x4mp73r Puntos13390

Aunque ya está solucionada, pero si la quieres en un ToggleButton solo cambia tu button a ToggleButton y agrega

isChecked()

:

toggleButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (toggleButton.isChecked() && player.isPlaying()) {
                    player.pause();
                } else {
                    player.start();
                }}

        });

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta