Android虚拟机播放音乐实例

来源:互联网 发布:淘宝美工提成怎么算 编辑:程序博客网 时间:2024/05/21 10:06

1

package dfzy.EX099;import dfzy.EX099.R;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 EX099 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(EX099.this, R.raw.big);    /* 运行播放音乐的按钮 */    mButton01.setOnClickListener(new ImageButton.OnClickListener()    {      @Override      /* 覆盖OnClick事件 */      public void onClick(View v)      {        // TODO Auto-generated method stub        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();  }}

raw下添加一个big.mp3文件

3

主布局文件

<?xml version="1.0" encoding="utf-8"?><RelativeLayout  android:id="@+id/widget32"  android:layout_width="fill_parent"  android:layout_height="fill_parent"  android:background="@drawable/white"  xmlns:android="http://schemas.android.com/apk/res/android">  <TextView    android:id="@+id/myTextView1"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="@string/hello"    android:textColor="@drawable/black"    android:layout_alignParentTop="true"    android:layout_alignParentLeft="true"  >  </TextView>  <ImageButton    android:id="@+id/myButton1"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:src="@drawable/play"    android:layout_below="@+id/myTextView1"  >  </ImageButton>  <ImageButton    android:id="@+id/myButton3"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:src="@drawable/pause"    android:layout_alignTop="@+id/myButton1"    android:layout_toRightOf="@+id/myButton1"  >  </ImageButton>  <ImageButton    android:id="@+id/myButton2"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:src="@drawable/stop"    android:layout_alignTop="@+id/myButton1"    android:layout_toRightOf="@+id/myButton3"  >  </ImageButton></RelativeLayout>

4 还有 图片文件,字段定义文件string.xml,颜色字段文件color.xml,这些不是核心的就不写了

5 显示结果


原创粉丝点击