控制背景音乐android

时间:2014-01-02 12:15:01

标签: android background

我正在使用服务播放背景音乐。问题是当我完成活动后音乐继续播放。当我按下主页按钮音乐停止我想让音乐在使用应用程序时继续播放,当主页按钮按下时请停止帮助我。可以告诉我如何做到这一点

private static final String TAG = null;
MediaPlayer player;
@Override
public IBinder onBind(Intent intent) {
    // TODO Auto-generated method stub
    return null;

}
@Override
public void onCreate() {
    super.onCreate();


    player = MediaPlayer.create(this, R.raw.sample);
    player.setLooping(true); // Set looping
    player.setVolume(100,100);

}
public int onStartCommand(Intent intent, int flags, int startId) {


    player.start();

    return 1;


}

public void onStart(Intent intent, int startId) {
    // TODO



}
public IBinder onUnBind(Intent arg0) {
    // TODO Auto-generated method stub

    return null;
}

public void onStop() {

}
public void onPause() {



    }


@Override
public void onDestroy() {

    player.stop();
    player.release();
}

@Override
public void onLowMemory() {




}

}

1 个答案:

答案 0 :(得分:0)

您应该使用服务并播放音乐。

http://developer.android.com/guide/components/services.html

服务在后台运行,因此即使您切换活动,它仍会运行,您可以在那里播放音乐。

您可以启动服务,然后在需要时停止服务。您还可以将服务绑定到活动。请查看上述链接中的文档以获取更多信息。

示例:

https://thenewcircle.com/s/post/60/servicesdemo_using_android_services

import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;

public class MyService extends Service {
    private static final String TAG = "MyService";
    MediaPlayer player;

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        Toast.makeText(this, "My Service Created", Toast.LENGTH_LONG).show();
        Log.d(TAG, "onCreate");

        player = MediaPlayer.create(this, R.raw.braincandy);
            // song is res/raw/yourmusicfile.mp3
        player.setLooping(false); // Set looping
    }

    @Override
    public void onDestroy() {
        Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show();
        Log.d(TAG, "onDestroy");
        player.stop();
    }

    @Override
    public void onStart(Intent intent, int startid) {
        Toast.makeText(this, "My Service Started", Toast.LENGTH_LONG).show();
        Log.d(TAG, "onStart");
        player.start();
    }
}

现在只需启动该服务,您就可以在需要时停止服务。您可以在活动之间切换,服务仍然可以播放音乐。

由于代码我很大,我上传到DropBox。这是我制作的样本

https://www.dropbox.com/s/fjc4krpcwsg7qm6/ServicesDemo.zip