MainActivity is as follows:
Package cn.com; import android. media. mediaPlayer; import android. media. mediaPlayer. onCompletionListener; import android. media. mediaPlayer. onErrorListener; import android. OS. bundle; import android. view. view; import android. view. view. onClickListener; import android. widget. imageView; import android. widget. textView; import android. app. activity;/*** important error Summary: * Eclipse reports prepareAsync called in state 8 * cause: * in ini In the tView () method: * mMediaPlayer = MediaPlayer. create (MainActivity. this, R. raw. big); * For This mMediaPlayer, the resource to be played is set * but after the stop button is clicked, The mMediaPlayer is executed. release (); * in this way, resources are released. so an error is reported * solution: * MediaPlayer is executed every time you click play. create () * Note: * You can save the current playback position when you click pause: * position = mMediaPlayer. getCurrentPosition (); * then * mMediaPlayer during each playback. seekTo (position); * This will resume playing from the pause. **/public class MainActivity extends Activity {Private TextView mTextView; private MediaPlayer mMediaPlayer; private ImageView mPlayerImageView; private ImageView mPauseImageView; private ImageView mStopImageView; private boolean isPause = false; private boolean isStop = false; private boolean isStart = false; private int currentPosition = 0; @ Override public void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R. layout. main); initView ();} private void initView () {mTextView = (TextView) findViewById (R. id. textView); mPlayerImageView = (ImageView) findViewById (R. id. playerImageButton); mPlayerImageView. setOnClickListener (new ButtonOnClickListener (); mPauseImageView = (ImageView) findViewById (R. id. pauseImageButton); mPauseImageView. setOnClickListener (new ButtonOnClickListener (); mStopImageView = (ImageView) findV IewById (R. id. stopImageButton); mStopImageView. setOnClickListener (new ButtonOnClickListener (); mMediaPlayer = new MediaPlayer (); // mMediaPlayer = MediaPlayer. create (MainActivity. this, R. raw. big); mMediaPlayer. setOnCompletionListener (new OnCompletionListener () {public void onCompletion (MediaPlayer mp) {mMediaPlayer. release (); mTextView. setText ("Music Playing completed") ;}}); mMediaPlayer. setOnErrorListener (new OnErrorL Istener () {public boolean onError (MediaPlayer mp, int what, int extra) {mMediaPlayer. release (); mTextView. setText ("audio playback error"); return false ;});} private class ButtonOnClickListener implements OnClickListener {public void onClick (View v) {switch (v. getId () {case R. id. playerImageButton: if (! IsStart) {try {mMediaPlayer = MediaPlayer. create (MainActivity. this, R. raw. big); // mMediaPlayer. prepare (); mMediaPlayer. seekTo (currentPosition); mMediaPlayer. start (); mMediaPlayer. setLooping (true); mTextView. setText ("Start music playback"); isStart = true; isPause = false; isStop = false;} catch (Exception e) {}} break; case R. id. pauseImageButton: if (mMediaPlayer! = Null) {if (! IsStop) {if (! IsPause) {mMediaPlayer. pause (); mTextView. setText ("pause music"); currentPosition = mMediaPlayer. getCurrentPosition (); isPause = true; isStop = false; isStart = false;} else {mMediaPlayer. start (); mTextView. setText ("continue playing music"); isStart = true; isPause = false; isStop = false ;}} break; case R. id. stopImageButton: if (mMediaPlayer! = Null) {if (isStart) {if (! IsStop) {mMediaPlayer. stop (); mMediaPlayer. release (); mTextView. setText ("Stop playing music"); currentPosition = 0; isStop = true; isPause = false; isStart = false ;}} break; default: break ;}}}}
Main. xml is as follows:
<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"> <textview Android: id = "@ + ID/textview" Android: layout_width = "wrap_content" Android: layout_height = "wrap_content" Android: layout_centerhorizontal = "true" Android: text = "test mediaplayer" Android: textsize = "30sp"/> <linearlayout Android: layout_width = "wrap_content" Android: layout_height = "70dip" Android: Orientation = "horizontal" Android: layout_below = "@ ID/textview"> <imageview Android: Id = "@ + ID/playerimagebutton" Android: layout_width = "70dip" Android: layout_height = "70dip" Android: src = "@ drawable/player"/> <imageview Android: Id = "@ + ID/pauseimagebutton" Android: layout_width = "70dip" Android: layout_height = "70dip" Android: src = "@ drawable/pause" Android: layout_marginleft = "20dip"/> <imageview Android: Id = "@ + ID/stopimagebutton" Android: layout_width = "70dip" Android: layout_height = "70dip" Android: src = "@ drawable/Stop" Android: layout_marginleft = "20dip"/> </linearlayout> </relativelayout>