Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android音樂播放器的常用操作

android音樂播放器的常用操作

編輯:關於Android編程

1. [代碼]變量申明      01 /*變量聲明*/ 02 private ImageButton playBtn = null;//播放、暫停 03 private ImageButton latestBtn = null;//上一首 04 private ImageButton nextButton = null;//下一首 05 private ImageButton forwardBtn = null;//快進 06 private ImageButton rewindBtn = null;//快退 07 private TextView playtime = null;//已播放時間 08 private TextView durationTime = null;//歌曲時間 09 private SeekBar seekbar = null;//歌曲進度 10 private Handler handler = null;//用於進度條 11 private Handler fHandler = null;//用於快進 12 private int currentPosition;//當前播放位置 2. [代碼]獲得上一個activity傳來的數據      01 @Override 02 protected void onCreate(Bundle savedInstanceState) { 03     super.onCreate(savedInstanceState); 04     setContentView(R.layout.play); 05     Intent intent = this.getIntent(); 06     Bundle bundle = intent.getExtras(); 07     _ids = bundle.getIntArray("_ids");    //獲得保存音樂文件_ID的數組 08     position = bundle.getInt("position"); //獲得應該播放的音樂的號數,既播放第幾首 09         //代碼未完,見下面的代碼 10 } 3. [代碼]初始化控件      1 playtime = (TextView)findViewById(R.id.playtime);         //顯示已經播放的時間 2 durationTime = (TextView)findViewById(R.id.duration);     //顯示歌曲總時間 3 playBtn = (ImageButton)findViewById(R.id.playBtn);       //開始播放、暫停播放按鈕 4 latestBtn = (ImageButton)findViewById(R.id.latestBtn);   //播放上一首按鈕 5 nextButton = (ImageButton)findViewById(R.id.nextBtn);    //播放下一首按鈕 6 forwardBtn = (ImageButton)findViewById(R.id.forwardBtn); //快進按鈕 7 rewindBtn = (ImageButton)findViewById(R.id.rewindBtn);   //快退按鈕 8 seekbar = (SeekBar)findViewById(R.id.seekbar);           //播放進度條 4. [代碼]定義各控件的回調函數     跳至 [1] [2] [3] [4] [全屏預覽]   001 playBtn.setOnClickListener(new View.OnClickListener() { //點擊“播放、暫停”按鈕時回調 002     @Override 003     public void onClick(View v) {               004         if (mp.isPlaying()){                     //如果正在播放則暫停 005             pause(); 006             playBtn.setBackgroundResource( 007                  R.drawable.play_selecor);   //更改按鍵狀態圖標 008         } else{                                  //如果沒有播放則恢復播放 009             play(); 010             playBtn.setBackgroundResource( 011                 R.drawable.pause_selecor);   //更改按鍵狀態圖標 012                       013         } 014     } 015 }); 016   017 latestBtn.setOnClickListener(new View.OnClickListener() {//點擊“播放上一首”按鈕時回調           018     @Override 019     public void onClick(View v) { 020         int num = _ids.length;                  //獲得音樂的數目 021         if(position==0){                        //如果已經時第一首則播放最後一首 022             position=num-1;                                     023         }else{                                  //否則播放上一首 024             position-=1; 025         } 026         int pos = _ids[position];              //得到將要播放的音樂的_ID 027         setup();                               //做播放前的准備工作 028         play();                    //開始播放 029     } 030 }); 031   032 nextButton.setOnClickListener(new View.OnClickListener(){//點擊“播放下一首”按鈕時回調           033     @Override 034     public void onClick(View v) {                035         int num = _ids.length;                 //獲得音樂的數目 036         if (position==num-1){                  //如果已經是最後一首,則播放第一首 037             position=0; 038         }else{ 039             position+=1;                  //否則播放下一首 040         } 041         int pos = _ids[position];             //得到將要播放的音樂的_ID 042         setup();                              //做播放前的准備工作 043         play();                               //開始播放 044     } 045 }); 046   047 forwardBtn.setOnTouchListener(new OnTouchListener() {    //點擊“快進”按鈕時回調 048     @Override 049     public boolean onTouch(View v, MotionEvent event) { 050         switch (event.getAction()) { 051             case MotionEvent.ACTION_DOWN: 052                 fHandler.post(forward); //此處使用handler對象更新進度條 053                 mp.pause();     //點擊快進按鈕時,音樂暫停播放                            054                 break; 055   056             case MotionEvent.ACTION_UP: 057                 fHandler.removeCallbacks(forward);          058                 mp.start();     //松開快進按鈕時,音樂暫恢復播放                           059                 playBtn.setBackgroundResource( 060                     R.drawable.pause_selecor); 061                 break; 062         } 063         return false; 064     } 065 }); 066   067 rewindBtn.setOnTouchListener(new OnTouchListener() {    //點擊“快退”按鈕時回調       068     @Override 069     public boolean onTouch(View v, MotionEvent event) { 070         switch (event.getAction()) { 071             case MotionEvent.ACTION_DOWN:   072                 fHandler.post(rewind);          073                 mp.pause(); //點擊快退按鈕時,音樂暫暫停播放 074                 break; 075   076             case MotionEvent.ACTION_UP: 077                 fHandler.removeCallbacks(rewind); 078                 mp.start(); //松開快退按鈕時,音樂暫恢復播放 079                 playBtn.setBackgroundResource( 080                     R.drawable.pause_selecor); 081                 break; 082         } 083         return false; 084     } 085 }); 086   087 seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {          088     @Override 089     public void onStopTrackingTouch(SeekBar seekBar) { 090         mp.start();     //停止拖動進度條時,音樂開始播放 091     } 092     @Override 093     public void onStartTrackingTouch(SeekBar seekBar) { 094         mp.pause();     //開始拖動進度條時,音樂暫停播放 095     } 096               097     @Override 098     public void onProgressChanged(SeekBar seekBar, int progress, 099         boolean fromUser) { 100         if(fromUser){ 101             mp.seekTo(progress);    //當進度條的值改變時,音樂播放器從新的位置開始播放 102         } 103     } 104 });
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved