xml文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".PlayActivity" >
<Button
android:id="@+id/btnPause"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/btnPlay"
android:layout_alignBottom="@+id/btnPlay"
android:layout_toRightOf="@+id/btnPlay"
android:onClick="MediaPlay"
android:text="@string/pause" />
<Button
android:id="@+id/btnStop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/btnRePlay"
android:layout_alignBottom="@+id/btnRePlay"
android:layout_marginLeft="18dp"
android:layout_toRightOf="@+id/btnRePlay"
android:onClick="MediaPlay"
android:text="@string/stop" />
<Button
android:id="@+id/btnRePlay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/btnPause"
android:layout_alignBottom="@+id/btnPause"
android:layout_marginLeft="18dp"
android:layout_toRightOf="@+id/btnPause"
android:onClick="MediaPlay"
android:text="@string/reset" />
<Button
android:id="@+id/btnPlay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="16dp"
android:onClick="MediaPlay"
android:text="@string/play" />
</RelativeLayout>
新建一个类MyMusicService.java
package com.example.musicplayerdemo;
import android.app.Service;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnPreparedListener;
import android.net.Uri;
import android.os.IBinder;
import android.util.Log;
public class MyMusicService extends Service {
private MediaPlayer mediaPlayer;// = new MediaPlayer(); //媒体播放器对象
private boolean isPause; // 暂停状态
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
mediaPlayer = MediaPlayer.create(this, R.raw.znq);// 此处引用到我们的mp3文件,raw文件夹的。
Log.i("Msg", "create");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
int msg = intent.getIntExtra("MSG", 0);
Log.i("Msg", msg + "");
if (msg == 0) {
play(0);
} else if (msg == 1) {
pause();
} else if (msg == 2) {
reset();
} else if (msg == 3) {
stop();
}
return super.onStartCommand(intent, flags, startId);
}
/**
* 播放音乐
*
* @param position
*/
private void play(int position) {
try {
mediaPlayer.start(); // 开始播放
if (position > 0) { // 如果音乐不是从头播放
mediaPlayer.seekTo(position);
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 暂停音乐
*/
private void pause() {
if (mediaPlayer != null && mediaPlayer.isPlaying()) {
mediaPlayer.pause();
isPause = true;
} else {
if (isPause) {
mediaPlayer.start();
isPause = false;
}
}
}
/**
* 停止音乐
*/
private void reset() {
if (mediaPlayer.isPlaying()) {
mediaPlayer.seekTo(0);
} else {
play(0);
}
}
/**
* 停止音乐
*/
private void stop() {
if (mediaPlayer != null) {
mediaPlayer.stop();
try {
mediaPlayer.prepare(); // 在调用stop后如果需要再次通过start进行播放,需要之前调用prepare函数
} catch (Exception e) {
e.printStackTrace();
}
}
}
@Override
public void onDestroy() {
if (mediaPlayer != null) {
mediaPlayer.stop();
mediaPlayer.release();
}
}
}
Play.Activity
package com.example.musicplayerdemo;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class PlayActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_play);
}
public void MediaPlay(View v) {
switch (v.getId()) {
case R.id.btnPlay:
StartService(0);
break;
case R.id.btnPause:
StartService(1);
break;
case R.id.btnRePlay:
StartService(2);
break;
case R.id.btnStop:
StartService(3);
break;
}
}
private void StartService(int flag) {
Intent intent = new Intent();
intent.putExtra("MSG", flag);
intent.setClass(PlayActivity.this, MyMusicService.class);
startService(intent);
}
}