EX07_09.java
上传用户:vip_99
上传日期:2021-03-27
资源大小:61159k
文件大小:6k
源码类别:

android开发

开发平台:

Java

  1. package irdc.EX07_09;
  2. import android.app.Activity; 
  3. import android.media.MediaPlayer; 
  4. import android.os.Bundle; 
  5. import android.view.View; 
  6. import android.widget.ImageButton;
  7. import android.widget.TextView; 
  8. public class EX07_09 extends Activity 
  9.   /*声明一个 ImageButton,TextView,MediaPlayer变量*/
  10.   private ImageButton mButton01, mButton02, mButton03;
  11.   private TextView mTextView01; 
  12.   private MediaPlayer mMediaPlayer01; 
  13.   /*声明一个Flag作为确认音乐是否暂停的变量并默认为false*/
  14.   private boolean bIsPaused = false; 
  15.    
  16.   /** Called when the activity is first created. */ 
  17.   @Override 
  18.   public void onCreate(Bundle savedInstanceState) 
  19.   { 
  20.     super.onCreate(savedInstanceState); 
  21.     setContentView(R.layout.main); 
  22.     
  23.     /*通过findViewById构造器创建TextView与ImageView对象*/ 
  24.     mButton01 =(ImageButton) findViewById(R.id.myButton1); 
  25.     mButton02 =(ImageButton) findViewById(R.id.myButton2); 
  26.     mButton03 =(ImageButton) findViewById(R.id.myButton3);
  27.     mTextView01 = (TextView) findViewById(R.id.myTextView1); 
  28.      
  29.     /* onCreate时创建MediaPlayer对象 */ 
  30.     mMediaPlayer01 = new MediaPlayer();  
  31.     /* 将音乐以Import的方式存储在res/raw/always.mp3 */ 
  32.     mMediaPlayer01 = MediaPlayer.create(EX07_09.this, R.raw.big); 
  33.     /* 运行播放音乐的按钮 */ 
  34.     mButton01.setOnClickListener(new ImageButton.OnClickListener()
  35.     { 
  36.       @Override 
  37.       /*覆盖OnClick事件*/
  38.       public void onClick(View v) 
  39.       {
  40.         // TODO Auto-generated method stub
  41.         try 
  42.         { 
  43.           
  44.           if (mMediaPlayer01 != null) 
  45.           { 
  46.             mMediaPlayer01.stop(); 
  47.           } 
  48.           /*在MediaPlayer取得播放资源与stop()之后
  49.            * 要准备Playback的状态前一定要使用MediaPlayer.prepare()*/
  50.           mMediaPlayer01.prepare(); 
  51.           /*开始或回复播放*/
  52.           mMediaPlayer01.start(); 
  53.           /*改变TextView为开始播放状态*/
  54.           mTextView01.setText(R.string.str_start);  
  55.         } 
  56.         catch (Exception e) 
  57.         { 
  58.           // TODO Auto-generated catch block 
  59.           mTextView01.setText(e.toString()); 
  60.           e.printStackTrace(); 
  61.         } 
  62.       } 
  63.     }); 
  64.      
  65.     /* 停止播放 */ 
  66.     mButton02.setOnClickListener(new ImageButton.OnClickListener() 
  67.     { 
  68.       @Override 
  69.       public void onClick(View arg0) 
  70.       { 
  71.         // TODO Auto-generated method stub 
  72.         try 
  73.         { 
  74.           if (mMediaPlayer01 != null) 
  75.           { 
  76.             /*停止播放*/
  77.             mMediaPlayer01.stop(); 
  78.             /*改变TextView为停止播放状态*/
  79.             mTextView01.setText(R.string.str_close);
  80.           } 
  81.             
  82.         } 
  83.         catch (Exception e) 
  84.         { 
  85.           // TODO Auto-generated catch block 
  86.           mTextView01.setText(e.toString()); 
  87.           e.printStackTrace(); 
  88.         } 
  89.       } 
  90.     }); 
  91.     
  92.     /* 暂停播放 */ 
  93.     mButton03.setOnClickListener(new ImageButton.OnClickListener() 
  94.     { 
  95.       @Override 
  96.       public void onClick(View arg0) 
  97.       { 
  98.         // TODO Auto-generated method stub 
  99.         try 
  100.         { 
  101.           if (mMediaPlayer01 != null) 
  102.           { 
  103.             /*是否为暂停状态=否*/
  104.             if(bIsPaused==false) 
  105.             { 
  106.               /*暂停播放*/
  107.               mMediaPlayer01.pause(); 
  108.               /*设置Flag为treu表示 Player状态为暂停*/
  109.               bIsPaused = true; 
  110.               /*改变TextView为暂停播放*/
  111.               mTextView01.setText(R.string.str_pause); 
  112.             } 
  113.             /*是否为暂停状态=是*/
  114.             else if(bIsPaused==true) 
  115.             { 
  116.               /*回复播出状态*/
  117.               mMediaPlayer01.start(); 
  118.               /*设置Flag为false表示 Player状态为非暂停状态*/
  119.               bIsPaused = false; 
  120.               /*改变TextView为开始播放*/
  121.               mTextView01.setText(R.string.str_start); 
  122.             } 
  123.           }          
  124.         } 
  125.         catch (Exception e) 
  126.         { 
  127.           // TODO Auto-generated catch block 
  128.           mTextView01.setText(e.toString()); 
  129.           e.printStackTrace(); 
  130.         } 
  131.       } 
  132.     }); 
  133.      
  134.     /* 当MediaPlayer.OnCompletionLister会运行的Listener */
  135.     mMediaPlayer01.setOnCompletionListener(
  136.       new MediaPlayer.OnCompletionListener() 
  137.     { 
  138.       // @Override 
  139.       /*覆盖文件播出完毕事件*/
  140.       public void onCompletion(MediaPlayer arg0) 
  141.       { 
  142.         try 
  143.         { 
  144.           /*解除资源与MediaPlayer的赋值关系
  145.            * 让资源可以为其它程序利用*/
  146.           mMediaPlayer01.release(); 
  147.           /*改变TextView为播放结束*/
  148.           mTextView01.setText(R.string.str_OnCompletionListener); 
  149.         } 
  150.         catch (Exception e) 
  151.         { 
  152.           mTextView01.setText(e.toString()); 
  153.           e.printStackTrace(); 
  154.         } 
  155.       } 
  156.     }); 
  157.      
  158.     /* 当MediaPlayer.OnErrorListener会运行的Listener */
  159.     mMediaPlayer01.setOnErrorListener(new MediaPlayer.OnErrorListener()
  160.     {
  161.       @Override
  162.       /*覆盖错误处理事件*/
  163.       public boolean onError(MediaPlayer arg0, int arg1, int arg2)
  164.       {
  165.         // TODO Auto-generated method stub
  166.         try
  167.         {
  168.           /*发生错误时也解除资源与MediaPlayer的赋值*/
  169.           mMediaPlayer01.release();
  170.           mTextView01.setText(R.string.str_OnErrorListener);
  171.         }
  172.         catch (Exception e)
  173.         {
  174.           mTextView01.setText(e.toString()); 
  175.           e.printStackTrace(); 
  176.         } 
  177.         return false; 
  178.       } 
  179.     }); 
  180.   } 
  181.   @Override 
  182.   /*覆盖主程序暂停状态事件*/
  183.   protected void onPause() 
  184.   { 
  185.     // TODO Auto-generated method stub 
  186.     try 
  187.     { 
  188.       /*再主程序暂停时解除资源与MediaPlayer的赋值关系*/
  189.       mMediaPlayer01.release(); 
  190.     } 
  191.     catch (Exception e) 
  192.     { 
  193.       mTextView01.setText(e.toString()); 
  194.       e.printStackTrace(); 
  195.     } 
  196.     super.onPause(); 
  197.   } 
  198. }