2013-05-04 51 views
1

我有一個代碼片段,我BrocardcastReceiver這樣的:的Android的MediaPlayer無法阻止

if (cmd != null && cmd.equals(PLAY_SOUND)) { 
    Log.i("mp", "mp has already been prepared "); 
    mp.setLooping(true); 
    mp.start(); 

    return; 
} 

if (cmd != null && cmd.equals(STOP_SOUND) && mp != null) {   
    if (mp.isLooping()) { 
     mp.setLooping(false); 
    } 

    mp.stop(); 
    mp.release(); 

    return; 
} 

它的目的是控制報警或停止報警。我可以使mp成功運行,但是當我想要停止時,mp爲空。如何停止mp被更改?

回答

0

在你的代碼

 stopPlaying(); 

試試這個

,並宣佈該梅索德。

private void stopPlaying() { 
    if (player1 != null) { 

     player1.stop(); 
     player1.release(); 
     player1 = null; 
    } 
}