Check if music playing in android media player API

2019-02-21 11:41发布

问题:

I'm using this code below to play an audio file in android

MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource("fileSourceHere");
mediaPlayer.prepare();
mediaPlayer.start();

I have a button on that program. When click on that button, it'll check if music playing. If music playing, it'll stop that. How can I check if music playing? I tried the code below but it didn't work

if(mediaPlayer.isPlaying() == true){
 mediaPlayer.pause();
}else{
 mediaPlayer.start();
}

回答1:

Try this:

MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource("fileSourceHere");
mediaPlayer.prepare();
mediaPlayer.start();

if(mediaPlayer.isPlaying())
{
    //stop or pause your media player mediaPlayer.stop(); or mediaPlayer.pause();
    mediaPlayer.pause();
}
else
{
    mediaPlayer.start();
}


回答2:

To check if Music playing by any other app. Use

AudioManager.isMusicActive();

And if you want to know about your app music.

Add Listener to listen

mediaPlayer.setOnPreparedListener(this);

mediaPlayer.setOnCompletionListener(this);

mediaPlayer.setOnErrorListener(this);

you can add a boolean variable to check isPlaying;

boolean isPlaying= false; //false by default

and when you start mediaPlayer at the very moment set isPlaying=true and you are good to go.