android的MediaPlayer播放器迷你案例

public class MainActivity extends Activity {
	private Button mb1, mb2, mb3;
	private TextView tv;
	private MediaPlayer mp;

	// 声明一个变量判断是否为暂停,默认为false
	private boolean isPaused = false;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// 通过findViewById找到资源
		mb1 = (Button) findViewById(R.id.myButton1);
		mb2 = (Button) findViewById(R.id.myButton2);
		mb3 = (Button) findViewById(R.id.myButton3);
		tv = (TextView) findViewById(R.id.myTextView1);
		// 创建MediaPlayer对象,将raw文件夹下的lovefool.mp3
		mp = MediaPlayer.create(this, R.raw.care);
		// 增加播放音乐按钮的事件
		mb1.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				try {
					if (mp != null) {
						mp.stop();
					}
					mp.prepare();
					mp.start();
					tv.setText("音乐播放中...");
				} catch (Exception e) {
					tv.setText("播放发生异常...");
					e.printStackTrace();
				}

			}
		});
		mb2.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				try {
					if (mp != null) {
						mp.stop();
						tv.setText("音乐暂停播放...");
					}
				} catch (Exception e) {
					tv.setText("音乐停止发生异常...");
					e.printStackTrace();
				}

			}
		});
		mb3.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				try {
					if (mp != null) {
						if (isPaused == false) {
							mp.pause();
							isPaused = true;
							tv.setText("停止播放!");
						} else if (isPaused == true) {
							mp.start();
							isPaused = false;
							tv.setText("开始播发!");
						}
					}
				} catch (Exception e) {
					tv.setText("发生异常...");
					e.printStackTrace();
				}
			}
		});

		/* 当MediaPlayer.OnCompletionLister会运行的Listener */
		mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
			// @Override
			/* 覆盖文件播出完毕事件 */
			public void onCompletion(MediaPlayer arg0) {
				try {
					/*
					 * 解除资源与MediaPlayer的赋值关系 让资源可以为其它程序利用
					 */
					mp.release();
					/* 改变TextView为播放结束 */
					tv.setText("音乐播发结束!");
				} catch (Exception e) {
					tv.setText(e.toString());
					e.printStackTrace();
				}
			}
		});

		/* 当MediaPlayer.OnErrorListener会运行的Listener */
		mp.setOnErrorListener(new MediaPlayer.OnErrorListener() {
			@Override
			/* 覆盖错误处理事件 */
			public boolean onError(MediaPlayer arg0, int arg1, int arg2) {
				// TODO Auto-generated method stub
				try {
					/* 发生错误时也解除资源与MediaPlayer的赋值 */
					mp.release();
					tv.setText("播放发生异常!");
				} catch (Exception e) {
					tv.setText(e.toString());
					e.printStackTrace();
				}
				return false;
			}
		});
	}

}
资源下载地址: http://download.csdn.net/detail/shi508181017/5878041
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值