【发布时间】:2014-12-25 21:34:09
【问题描述】:
这有点奇怪,我不知道发生了什么。
当我启动我的应用程序(游戏)时,音乐开始播放。我有一个按钮可以打开和关闭音乐。设置会保存到共享首选项,以便保留。
一切正常,您可以按 home 键,重新调用应用程序,在做其他事情时将其留在后台等。但是,如果应用程序在后台停留一段时间(例如,过夜),然后重新调用。除了音乐,一切都正常。
您可以进入主菜单,多次点击“音乐开/关”按钮,但一无所获。
启动音乐的唯一方法是终止应用程序(或正确退出,即从主菜单按“返回”键),然后重新启动它,以便从头开始重新创建所有内容。
我已确认“音乐”对象仍然有效,并且按下的“音乐开/关”按钮正在注册。
有没有人对媒体播放器有类似的问题?我无法弄清楚我正在(或没有在做什么)导致这种情况。
代码
这是我的媒体播放器类:
public class MusicMan implements MediaPlayer.OnPreparedListener {
MediaPlayer musicPlayer;
MusicMan(Context myContext){
musicPlayer = MediaPlayer.create(myContext, R.raw.music);
musicPlayer.setVolume(.6f, .6f);
}
public void listener(){};
public void start(){
musicPlayer.setLooping(true);
musicPlayer.start();
}
public void stop(){
musicPlayer.stop();
}
public void pause(){
musicPlayer.pause();
}
public int getPos(){
return musicPlayer.getCurrentPosition();
}
public void skipTo(int position){
musicPlayer.seekTo(position);
}
@Override
public void onPrepared(MediaPlayer arg0) {
}
}
然后我像这样简单地创建一个对象:
MusicMan music = new MusicMan(view.getContext());
然后我只需使用 MusicMan 类中的方法开始和停止音乐:
music.start();
【问题讨论】:
-
当你启动你的应用程序并在点击主页按钮后打开音乐仍然播放音乐?
-
嗨@Abdellah,是的,但前提是应用程序不会停留太久。如果我按回家,然后离开它很长一段时间(比如过夜或至少几个小时),然后回到它,没有音乐,我必须杀死应用程序并从头开始重新启动它。
-
所以你必须使用服务
-
@Abdellah,请详细说明,我为什么要使用服务?我不希望应用程序在后台播放音乐。我的理解是,如果您确实希望它继续在后台播放(当您的应用不在屏幕上时),您只需要使用该服务。
-
你的意思是:如果应用程序在后台停留了一段时间..所以你需要在应用程序在后台时播放音乐
标签: android bundle android-mediaplayer