前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家 
android音乐播放_编程

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/btn_main_play"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="play" />

    <Button
        android:id="@+id/btn_main_stop"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="stop" />

    <Button
        android:id="@+id/btn_main_pause"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="pause" />

    <Button
        android:id="@+id/btn_main_exit"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="exit" />

</LinearLayout>

处理Activity类

package com.hbk.musicservice;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity implements OnClickListener {

	private Button btn_main_play;
	private Button btn_main_stop;
	private Button btn_main_pause;
	private Button btn_main_exit;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		btn_main_play = (Button) findViewById(R.id.btn_main_play);
		btn_main_stop = (Button) findViewById(R.id.btn_main_stop);
		btn_main_pause = (Button) findViewById(R.id.btn_main_pause);
		btn_main_exit = (Button) findViewById(R.id.btn_main_exit);

		btn_main_play.setOnClickListener(this);
		btn_main_stop.setOnClickListener(this);
		btn_main_pause.setOnClickListener(this);
		btn_main_exit.setOnClickListener(this);
	}

	// 通过Intent携带数据进行区分
	@Override
	public void onClick(View v) {
		Intent intent = new Intent(this, MusicService.class);
		if (btn_main_play == v) {//播放
			intent.putExtra("action", "play");
			startService(intent);
		} else if (btn_main_stop == v) {//停止播放
			intent.putExtra("action", "stop");
			startService(intent);
		} else if (btn_main_pause == v) {//暂停音乐
			intent.putExtra("action", "pause");
			startService(intent);
		} else if (btn_main_exit == v) {//退出并停止音乐
			//停止服务
			stopService(intent);
			finish();
		}
	}
}

注意不能使用Activity去处理,而是用上面的Service

package com.hbk.musicservice;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/**
 * 结论:不能使用Activity去播放音乐,当按退出返回键,重新进入的时候,点播放会重复播放,无法控制。
 * @author 黄宝康
 *
 */
public class MainActivity1 extends Activity implements OnClickListener {

	private Button btn_main_play;
	private Button btn_main_stop;
	private Button btn_main_pause;
	private Button btn_main_exit;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		btn_main_play = (Button) findViewById(R.id.btn_main_play);
		btn_main_stop = (Button) findViewById(R.id.btn_main_stop);
		btn_main_pause = (Button) findViewById(R.id.btn_main_pause);
		btn_main_exit = (Button) findViewById(R.id.btn_main_exit);

		btn_main_play.setOnClickListener(this);
		btn_main_stop.setOnClickListener(this);
		btn_main_pause.setOnClickListener(this);
		btn_main_exit.setOnClickListener(this);
	}

	@Override
	public void onClick(View v) {
		if (btn_main_play == v) {//播放
			playMusic();
		} else if (btn_main_stop == v) {//停止播放
			stopMusic();
		} else if (btn_main_pause == v) {//暂停音乐
			pauseMusic();
		} else if (btn_main_exit == v) {//退出并停止音乐
			exitMusic();
		}
	}

	private MediaPlayer player;
	private void exitMusic() {
		stopMusic();
		finish();
	}

	/*
	 * 暂停音乐
	 */
	private void pauseMusic() {
		if(player!=null && player.isPlaying()) {
			player.pause();
		}
	}

	private void stopMusic() {
		if(player!=null) {
			player.stop();//停止
			player.reset();//重置
			player.release();//释放资源
			player = null;//赋空
		}
	}

	/**
	 * 播放音乐
	 */
	private void playMusic() {
		if(player==null) {
			player = MediaPlayer.create(this,R.raw.water_hander);
		}
		player.start();
	}
}

清单文件注册Service

<service android:name="com.hbk.musicservice.MusicService"/>

把音乐文件放在raw文件夹下
android音乐播放_android音乐播放_02