1

我的 BrocardcastReceiver 中有一个代码片段,如下所示:

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被改变?

4

1 回答 1

0

尝试这个

在你的代码中

       stopPlaying();

并声明这个方法。

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

        player1.stop();
        player1.release();
        player1 = null;
   }
}
于 2014-03-13T11:11:08.067 回答