【发布时间】:2014-11-09 08:42:27
【问题描述】:
我正在制作音频播放器(android)。问题是当我启动我的应用程序>播放歌曲>按后退键或回家歌曲仍在后台播放但是当我再次打开应用程序时,它开始播放新歌老歌也在播放。如何摆脱这个?
【问题讨论】:
-
您可以在销毁活动时释放媒体播放器
标签: android android-mediaplayer
我正在制作音频播放器(android)。问题是当我启动我的应用程序>播放歌曲>按后退键或回家歌曲仍在后台播放但是当我再次打开应用程序时,它开始播放新歌老歌也在播放。如何摆脱这个?
【问题讨论】:
标签: android android-mediaplayer
停止并释放onDestroy中的media player,例如:
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
if(mp!=null){
mp.stop();
mp.release();
mp = null;
}
}
【讨论】:
在播放新歌之前,在stop() 方法之后使用mediaplayer.reset();。
在选择和播放新歌方法中添加这些点:
检查曲目是否正在播放:
if(mp.isPlaying())
...其中mp 是MediaPlayer 对象。
如果是,则停止播放,然后重置媒体播放器:
mp.stop();
mp.reset();
mp.reset() 将重置 MediaPlayer 的所有初始化,例如:歌曲 URI 等。
如果不是,则只重置媒体播放器:
mp.reset();
现在从列表中获取新选择的曲目的位置和ID,并将其设置为新的URI。
根据新的 URI 播放曲目:
mp = MediaPlayer.create(this, NewTrackUri);
mp.start();
这应该只播放新选择的曲目。
【讨论】:
问题是我不知道在后台运行的服务。现在我正在使用一项服务来电镀歌曲并从服务更新活动 UI,当我的应用程序在后台播放歌曲时,当我重新打开应用程序并选择另一首歌曲时,之前停止播放并开始播放新歌曲 感谢大家的帮助
【讨论】: