Android - 如何在应用内部保持音乐播放?

时间:2014-12-10 02:52:53

标签: android background-music

我想设置我的应用程序的背景音乐,以便在我在应用程序时继续播放,并在我按下主页按钮时暂停。问题是如果我在手机进入主屏幕时暂停音乐,当我在我的应用程序中进行不同的活动时,它也会暂停音乐。有没有办法在我切换活动时保持音乐播放(例如我有一个菜单,我可以在我的应用程序中打开不同的屏幕,一旦手机离开菜单屏幕,音乐就会停止播放)。我的代码如下:

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();
}

}

2 个答案:

答案 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)

我看到了两种不同的解决方案:

  • 创建一个扩展应用程序并将音乐播放器放在那里的类。

  • 创建一个将在后台播放音乐的服务