我想设置我的应用程序的背景音乐,以便在我在应用程序时继续播放,并在我按下主页按钮时暂停。问题是如果我在手机进入主屏幕时暂停音乐,当我在我的应用程序中进行不同的活动时,它也会暂停音乐。有没有办法在我切换活动时保持音乐播放(例如我有一个菜单,我可以在我的应用程序中打开不同的屏幕,一旦手机离开菜单屏幕,音乐就会停止播放)。我的代码如下:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(Menu.this, android.R.layout.simple_list_item_1,
classes));
mp = MediaPlayer.create(Menu.this, R.raw.music);
mp.start();
}
@Override
protected void onPause() {
super.onPause();
}
@Override
protected void onStop() {
super.onStop();
mp.pause();
}
@Override
protected void onResume() {
super.onResume();
mp.start();
}
@Override
protected void onDestroy() {
super.onDestroy();
mp.release();
finish();
}
}
答案 0 :(得分:2)
您可以创建一个Service
来保持音乐在后台播放
示例代码:
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
import android.util.Log;
public class PlayAudio extends Service{
private static final String LOGCAT = null;
MediaPlayer objPlayer;
public void onCreate(){
super.onCreate();
Log.d(LOGCAT, "Service Started!");
objPlayer = MediaPlayer.create(this,R.raw.sleepaway);
}
public int onStartCommand(Intent intent, int flags, int startId){
objPlayer.start();
Log.d(LOGCAT, "Media Player started!");
if(objPlayer.isLooping() != true){
Log.d(LOGCAT, "Problem in Playing Audio");
}
return 1;
}
public void onStop(){
objPlayer.stop();
objPlayer.release();
}
public void onPause(){
objPlayer.stop();
objPlayer.release();
}
public void onDestroy(){
objPlayer.stop();
objPlayer.release();
}
@Override
public IBinder onBind(Intent objIndent) {
return null;
}
}
有关详细信息,请参阅here。
答案 1 :(得分:0)
我看到了两种不同的解决方案:
创建一个扩展应用程序并将音乐播放器放在那里的类。
创建一个将在后台播放音乐的服务