如何在android中停止播放后再次播放流?

问题描述:

我在android中制作一个应用程序,我的问题是,当我播放流时它播放的很好,但是当我点击停止按钮然后点击播放按钮时,歌曲不播放,该怎么做?如果有人知道,请帮助我。下面是我写的代码: -如何在android中停止播放后再次播放流?

// method for play stream after stop it. 
public void startradio(View v) { 
     try{ 
      if(mp.isPlaying()){ 
       return; 
      } 
       mp.start(); 
     } catch(IllegalStateException ex){ 
      ex.printStackTrace(); 
     } 
    } 

// method for stop stream. 
public void stopradio(View v) { 
    if(mp.isPlaying()){ 
     mp.stop(); 
    } 
    mp.release(); 
} 
+0

你释放上停止流,不释放它,当你打停,你应该能够再次启动它。 – Eluvatar 2013-04-26 22:29:03

@ Eluvatar的评论是非常接近,但没有雪茄。

如果你这样做,你的应用程序仍然会处于错误的状态,并且需要在再次调用start()之前调用prepare()。你应该看看the event cycle for MediaPlayer

换句话说可能的变化将是

// method for play stream after stop it. 
public void startradio(View v) { 
     try{ 
      if(mp.isPlaying()){ 
       return; 
      } 
      mp.prepare(); 
      mp.start(); 
     } catch(IllegalStateException ex){ 
      ex.printStackTrace(); 
     } 
    } 

// method for stop stream. 
public void stopradio(View v) { 
    if(mp.isPlaying()){ 
     mp.stop(); 
    } 

}