Tisco
Tisco

Reputation: 53

How to check if an audio is playing with Android MediaPlayer?

In a situation where I have a listview that in each list item when clicking is an audio and is played when clicked on the desired item.

When you click on multiple items, the audio blends.

I would like to know how I can click on an item and play and if I want another item, when clicking it the previous audio stops and the audio of the clicaco item starts.

I tried to use the code below, but audios do not stop when I click on another item.

@Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                mediaPlayer = MediaPlayer.create(MainActivity.this, caminhoAudio[position]);

                if ( !(mediaPlayer.isPlaying()) )
                {
                    tocarSom();
                }

            }
            });


    }

    public void tocarSom() {

            if (mediaPlayer != null)
            {
            mediaPlayer.start();
            }


            // LIBERAR MEMÓRIA
            mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                public void onCompletion(MediaPlayer mediaPlayer) {
                    mediaPlayer.release();

                };
            });

        }

Thank You!!!

Upvotes: 0

Views: 2566

Answers (3)

Stargazer Baltic
Stargazer Baltic

Reputation: 51

if(mMediaPlayer != null) {
    //Fist stop the current playing raw file
    mMediaPlayer.stop();
    mMediaPlayer.release();
    mMediaPlayer = null;

    //Then Play the selected raw file.
    tocarSom();
} else {
    //If nothing is playing then Play the selected raw file or audio
    tocarSom();
}

Upvotes: 0

Rishabh Sharma
Rishabh Sharma

Reputation: 268

Do something like this.

if(mMediaPlayer!=null)
{
    mMediaPlayer.release();
    mMediaPlayer=null;
}

Upvotes: 1

james
james

Reputation: 743

Well, if your methode startAudio() automatically do everything needed to start to play a song, you have to call startAudio() after the mediaPlayer.release();

Upvotes: 1

Related Questions