android关闭播放器,Android媒体播放器在后台播放,但不要停止应用程序杀死

创建一个单独的类来处理几个条件

import android.content.Context;

import android.media.MediaPlayer;

import android.util.Log;

public class MusicManager {

static final int MUSIC_PREVIOUS = -1;

private static final String TAG = "MusicManager";

static MediaPlayer mp;

private static int currentMusic = -1;

private static int previousMusic = -1;

public static void start(Context context, int music) {

start(context, music, false);

}

public static void start(Context context, int music, boolean force) {

if (!force && currentMusic > -1) {

// already playing some music and not forced to change

return;

}

if (music == MUSIC_PREVIOUS) {

Log.d(TAG, "Using previous music [" + previousMusic + "]");

music = previousMusic;

}

if (currentMusic == music) {

// already playing this music

return;

}

if (currentMusic != -1) {

previousMusic = currentMusic;

Log.d(TAG, "Previous music was [" + previousMusic + "]");

// playing some other music, pause it and change

pause();

}

currentMusic = music;

Log.d(TAG, "Current music is now [" + currentMusic + "]");

if (mp != null) {

if (!mp.isPlaying()) {

mp.start();

}

} else {

mp = MediaPlayer.create(context, R.raw.backGroundMusic); //Ur BackGround Music

}

if (mp == null) {

Log.e(TAG, "player was not created successfully");

} else {

try {

mp.setLooping(true);

mp.start();

} catch (Exception e) {

Log.e(TAG, e.getMessage(), e);

}

}

}

public static void pause() {

if (mp != null) {

if (mp.isPlaying()) {

mp.pause();

}

}

// previousMusic should always be something valid

if (currentMusic != -1) {

{

previousMusic = currentMusic;

Log.d(TAG, "Previous music was [" + previousMusic + "]");

}

currentMusic = -1;

Log.d(TAG, "Current music is now [" + currentMusic + "]");

}

}

public static void release() {

Log.d(TAG, "Releasing media players");

try {

if (mp != null) {

if (mp.isPlaying()) {

mp.stop();

}

mp.release();

}

} catch (Exception e) {

Log.e(TAG, e.getMessage(), e);

}

if (currentMusic != -1) {

previousMusic = currentMusic;

Log.d(TAG, "Previous music was [" + previousMusic + "]");

}

currentMusic = -1;

Log.d(TAG, "Current music is now [" + currentMusic + "]");

}

}

然后在你的MainActivity中定义一个全局布尔变量,并在onCreate()的setContentView(….)之前设置为true,即

boolean continueBGMusic;

....

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

continueBGMusic=true;

setContentView(R.layout.activity_main);

.....

}

然后更新onPause()as

public void onPause()

{

super.onPause();

if(!continueBGMusic)

MusicManager.pause();

}

和onResume()as

public void onResume()

{

super.onResume();

continueBGMusic=false;

MusicManager.start(this,R.raw.backGroundMusic);

}

使用布尔变量和两种方法更新所有ur三个活动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值