当前位置: 代码迷 >> Android >> android 简略的音乐播放
  详细解决方案

android 简略的音乐播放

热度:75   发布时间:2016-05-01 18:47:36.0
android 简单的音乐播放

代码如下:

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. */	@Override	public 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 block					mTextView01.setText(e.toString());					e.printStackTrace();				}			}		});		/* 停止播放 */		mButton02.setOnClickListener(new ImageButton.OnClickListener() {			@Override			public void onClick(View arg0) {				// TODO Auto-generated method stub				try {					if (mMediaPlayer01 != null) {						/* 停止播放 */						mMediaPlayer01.stop();						/* 改变TextView为停止播放状态 */						mTextView01.setText(R.string.str_close);					}				} catch (Exception e) {					// TODO Auto-generated catch block					mTextView01.setText(e.toString());					e.printStackTrace();				}			}		});		/* 暂停播放 */		mButton03.setOnClickListener(new ImageButton.OnClickListener() {			@Override			public void onClick(View arg0) {				// TODO Auto-generated method stub				try {					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 block					mTextView01.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 stub				try {					/* 发生错误时也解除资源与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 stub		try {			/* 再主程序暂停时解除资源与MediaPlayer的赋值关系 */			mMediaPlayer01.release();		} catch (Exception e) {			mTextView01.setText(e.toString());			e.printStackTrace();		}		super.onPause();	}}

?效果如下:


  相关解决方案