【问题标题】:Mediaplayer won't quit媒体播放器不会退出
【发布时间】:2011-11-26 02:48:36
【问题描述】:

在我的 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 方法之前初始化我的媒体播放器。问题是当用户点击列表视图类中的一首新歌曲时,我的媒体播放器不会关闭,它会创建这个类并同时播放两个媒体播放器,同时旧的播放器继续播放。

【问题讨论】:

  • 解释一下你的屏幕转换?从哪个活动到哪个活动?每个活动的布局。
  • 我有一个充满歌曲的列表视图,然后它会使用媒体播放器进行相对布局

标签: android audio path media-player


【解决方案1】:

好的,所以我假设你有一个充满歌曲的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;
    }
}

【讨论】:

  • 但我希望媒体播放器继续播放,直到用户选择一首新歌......这将在用户尝试选择一首新歌时停止。当用户寻找一首新歌时,我怎样才能让它继续播放
  • 然后使用Service 处理跨多个Activity 的操作
  • 你能解释一下我会给你代表并检查回答..我只是对如何使用服务有点困惑
  • 换个话题,我只根据发帖人的问题来回答!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多