2012-04-15 5 views
7

Sto usando questo codice sottostante per riprodurre un file audio in AndroidControllare se la riproduzione di musica in Android Media Player API

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

Ho un pulsante sul quel programma. Quando clicchi su quel pulsante, controllerà se la musica sta suonando. Se la musica suona, smetterà di farlo. Come posso verificare se la musica sta suonando? Ho provato il codice qui sotto, ma non ha funzionato

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

Non è necessario '== true'. 'isPlaying()' verifica per te. Tutto il resto sembra corretto. – adneal

+2

Puoi spiegare cosa succede? "non ha funzionato" non dice cosa è successo o non è successo. –

+0

la musica non si è fermata. Non è successo nient'altro –

risposta

4

Prova questa:

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(); 
} 
4

Per controllare se la musica a giocare da qualsiasi altra applicazione. Utilizzare

AudioManager.isMusicActive(); 

E se si desidera conoscere la propria musica dell'app.

Aggiungi Listener di ascoltare

mediaPlayer.setOnPreparedListener(this); 

mediaPlayer.setOnCompletionListener(this); 

mediaPlayer.setOnErrorListener(this); 

è possibile aggiungere una variabile booleana per controllare isPlaying;

boolean isPlaying= false; //false by default 

e quando si start mediaPlayer nel momento impostato isPlaying=true e siete a posto.