媒体播放器不会退出

问题描述:

在我的onCreate方法我检查,看看媒体播放器是否正在播放,如果是关闭它媒体播放器不会退出

if(mediaplayer.isPlaying()==false) 
    try { 
     playAudio(path); 
    } catch (Exception e) { 
     e.printStackTrace(); 

}else{ 
    mediaplayer.stop(); 
    mediaplayer.reset(); 

} 
    primarySeekBarProgressUpdater(); 

} 

我玩音频的方法是

private void playAudio(String url) throws Exception{ 



    mediaplayer.setDataSource(url); 
    mediaplayer.prepare(); 
    mediaplayer.start(); 

} 

我也在onCreate方法之前初始化我的媒体播放器。问题是我的媒体播放器不会关闭,而是当用户点击列表视图课程中的新歌曲时,它会创建此类,并在旧的播放器同时播放这两个媒体播放器。

+0

解释你的屏幕过渡?从哪个活动到哪个活动?每个活动的布局。 –

+0

我有一个列表视图充满了歌曲,然后它与媒体播放器的相对布局 –

好了,所以我假设你有一个ListActivity以饱满的歌曲,用户点击任何这些,它会移动到一个新Activity播放的歌曲,其中歌曲信息通过Intent通过。

首先,你需要阅读并记住Activity Lifecyclehttp://developer.android.com/reference/android/app/Activity.html

其次,你的问题,根据生命周期,每次用户点击一首歌就行了,然后它会创建一个新的Activity到播放歌曲,这意味着它会创建一个新的MediaPlayer对象。因此,您可以看到许多歌曲与您从列表中选择歌曲一样多。 您需要做的是在关闭音乐播放屏幕以返回歌曲列表时处理MediaPlayer对象。

MediaPlayer mPlayer = null;; 

public void onCreate() { 
    // init mediaplayer here 
    mPlayer = ... 
} 


public void onDestroy() { 
    // release object 
    if(mPlayer != null) { 
     mPlayer.stop(); 
     mPlayer.release(); 
     mPlayer = null; 
    } 
} 
+0

但我想媒体播放器继续播放,直到用户选择一首新歌曲....这将停止当用户尝试选一首新歌。我怎么能保持它播放,而用户寻找一首新歌 –

+0

然后使用'服务',它处理多个'活动'的行动 –

+0

你能解释我会给你代表和检查回答..我只是有点困惑关于如何使用服务 –