代码如下:

package com.test;import android.app.Activity;import android.media.MediaPlayer;import android.os.Bundle;import android.view.View;import android.widget.ImageButton;import android.widget.TextView;public class MusicActivity extends Activity {/* 声明一个 ImageButton,TextView,MediaPlayer变量 */private ImageButton mButton01, mButton02, mButton03;private TextView mTextView01;private MediaPlayer mMediaPlayer01;/* 声明一个Flag作为确认音乐是否暂停的变量并默认为false */private boolean bIsPaused = false;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);/* 通过findViewById构造器创建TextView与ImageView对象 */mButton01 = (ImageButton) findViewById(R.id.myButton1);mButton02 = (ImageButton) findViewById(R.id.myButton2);mButton03 = (ImageButton) findViewById(R.id.myButton3);mTextView01 = (TextView) findViewById(R.id.myTextView1);/* onCreate时创建MediaPlayer对象 */mMediaPlayer01 = new MediaPlayer();/* 将音乐以Import的方式存储在res/raw/always.mp3 */mMediaPlayer01 = MediaPlayer.create(MusicActivity.this, R.raw.big);/* 运行播放音乐的按钮 */mButton01.setOnClickListener(new ImageButton.OnClickListener() {@Override/* 覆盖OnClick事件 */public void onClick(View v) {try {if (mMediaPlayer01 != null) {mMediaPlayer01.stop();}/* * 在MediaPlayer取得播放资源与stop()之后 * 要准备Playback的状态前一定要使用MediaPlayer.prepare() */mMediaPlayer01.prepare();/* 开始或回复播放 */mMediaPlayer01.start();/* 改变TextView为开始播放状态 */mTextView01.setText(R.string.str_start);} catch (Exception e) {// TODO Auto-generated catch blockmTextView01.setText(e.toString());e.printStackTrace();}}});/* 停止播放 */mButton02.setOnClickListener(new ImageButton.OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubtry {if (mMediaPlayer01 != null) {/* 停止播放 */mMediaPlayer01.stop();/* 改变TextView为停止播放状态 */mTextView01.setText(R.string.str_close);}} catch (Exception e) {// TODO Auto-generated catch blockmTextView01.setText(e.toString());e.printStackTrace();}}});/* 暂停播放 */mButton03.setOnClickListener(new ImageButton.OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubtry {if (mMediaPlayer01 != null) {/* 是否为暂停状态=否 */if (bIsPaused == false) {/* 暂停播放 */mMediaPlayer01.pause();/* 设置Flag为treu表示 Player状态为暂停 */bIsPaused = true;/* 改变TextView为暂停播放 */mTextView01.setText(R.string.str_pause);}/* 是否为暂停状态=是 */else if (bIsPaused == true) {/* 回复播出状态 */mMediaPlayer01.start();/* 设置Flag为false表示 Player状态为非暂停状态 */bIsPaused = false;/* 改变TextView为开始播放 */mTextView01.setText(R.string.str_start);}}} catch (Exception e) {// TODO Auto-generated catch blockmTextView01.setText(e.toString());e.printStackTrace();}}});/* 当MediaPlayer.OnCompletionLister会运行的Listener */mMediaPlayer01.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {// @Override/* 覆盖文件播出完毕事件 */public void onCompletion(MediaPlayer arg0) {try {/* * 解除资源与MediaPlayer的赋值关系 让资源可以为其它程序利用 */mMediaPlayer01.release();/* 改变TextView为播放结束 */mTextView01.setText(R.string.str_OnCompletionListener);} catch (Exception e) {mTextView01.setText(e.toString());e.printStackTrace();}}});/* 当MediaPlayer.OnErrorListener会运行的Listener */mMediaPlayer01.setOnErrorListener(new MediaPlayer.OnErrorListener() {@Override/* 覆盖错误处理事件 */public boolean onError(MediaPlayer arg0, int arg1, int arg2) {// TODO Auto-generated method stubtry {/* 发生错误时也解除资源与MediaPlayer的赋值 */mMediaPlayer01.release();mTextView01.setText(R.string.str_OnErrorListener);} catch (Exception e) {mTextView01.setText(e.toString());e.printStackTrace();}return false;}});}@Override/* 覆盖主程序暂停状态事件 */protected void onPause() {// TODO Auto-generated method stubtry {/* 再主程序暂停时解除资源与MediaPlayer的赋值关系 */mMediaPlayer01.release();} catch (Exception e) {mTextView01.setText(e.toString());e.printStackTrace();}super.onPause();}}

效果如下:


android 简单的音乐播放

更多相关文章

  1. Android 沉浸式状态栏 开源 很好用
  2. android状态栏一体化
  3. android-google开源资源
  4. Android:获取状态栏高度
  5. android 颜色资源
  6. Android通过共享Uid实现两个应用间的数据库资源共享
  7. 今天给大家分享一下Android中的资源与国际化的问题
  8. android输入法弹出调整布局与沉浸式状态栏冲突+fitSystemWindows
  9. Android系统资源

随机推荐

  1. Android实现定时刷新
  2. RN集成原生Android应用
  3. Android(安卓)虚拟机安装SD卡
  4. Android中用到了哪些设计模式?
  5. [置顶] 我的Android进阶之旅------>andro
  6. Android(安卓)webkit 事件传递流程
  7. Android(安卓)Studio遇到Failed to resol
  8. Rockie's Android(安卓)Porting Guide(4)—
  9. Android(安卓)assets文件夹之位置放置和
  10. Android——多语言适配