国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android仿音樂播放器功能

2019-12-12 03:45:21
字體:
來源:轉載
供稿:網友

本文實例為大家分享了Android仿音樂播放器功能的具體代碼,供大家參考,具體內容如下

讀取本地音樂文件

源代碼:

import android.media.MediaPlayer;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.ImageButton;import android.widget.SeekBar;import android.widget.TextView;public class MainActivity extends AppCompatActivity {  private MediaPlayer mediaPlayer;  private SeekBar seekBar;  private TextView tv_mian_stop;  private TextView tv_mian_start;  private int musicaction;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    tv_mian_start = (TextView) findViewById(R.id.tv_mian_start);    tv_mian_stop = (TextView) findViewById(R.id.tv_mian_stop);    seekBar = (SeekBar) findViewById(R.id.seekBar);    //進度條的監聽事件    seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {      @Override      public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {          //改變         //每當進度條發生改變時tv_mian_start的值發生變化         //new TimeUtil().secToTime()一個外部類(時間格式轉化)         tv_mian_start.setText(new TimeUtil().secToTime(mediaPlayer.getCurrentPosition()/1000)+"");      }      @Override      public void onStartTrackingTouch(SeekBar seekBar) {          //開始      }      @Override      public void onStopTrackingTouch(SeekBar seekBar) {          //結束          //獲取拖動結束之后的位置        int progrss=seekBar.getProgress();        mediaPlayer.seekTo(progrss);      }    });  }  public void isPlay(View view){    ImageButton imageButton= (ImageButton) view;    if (mediaPlayer==null){      mediaPlayer = MediaPlayer.create(this, R.raw.seve);      mediaPlayer.start();      //把圖標修改為暫停的圖標      imageButton.setImageResource(android.R.drawable.ic_media_pause);      //獲取音樂的總時長      int muiscsum=mediaPlayer.getDuration();      //設置進度條的最大值為總時長       seekBar.setMax(muiscsum);       //執行一個多線程的耗時操作       new MyThread().start();       tv_mian_stop.setText(new TimeUtil().secToTime(muiscsum/1000)+"");    }else if (mediaPlayer.isPlaying()){      mediaPlayer.pause();      imageButton.setImageResource(android.R.drawable.ic_media_play);    }else{      mediaPlayer.start();      imageButton.setImageResource(android.R.drawable.ic_media_pause);    }  }  class MyThread extends Thread{    @Override    public void run() {      super.run();      //當進度條的當前值小于最大值時進度條發生改變      while(seekBar.getProgress()<=seekBar.getMax()){      //獲取當前音樂播放的位置      musicaction = mediaPlayer.getCurrentPosition();      //讓進度條動起來     seekBar.setProgress(musicaction);      }    }  }}

時間格式轉化類:

public class TimeUtil {  public static String secToTime(int time) {    String timeStr = null;    int hour = 0;    int minute = 0;    int second = 0;    if (time <= 0)      return "00:00";    else {      minute = time / 60;      if (minute < 60) {        second = time % 60;        timeStr = unitFormat(minute) + ":" + unitFormat(second);      } else {        hour = minute / 60;        if (hour > 99)          return "99:59:59";        minute = minute % 60;        second = time - hour * 3600 - minute * 60;        timeStr = unitFormat(hour) + ":" + unitFormat(minute) + ":" + unitFormat(second);      }    }    return timeStr;  }  private static String unitFormat(int i) {    String retStr = null;    if (i >= 0 && i < 10)      retStr = "0" + Integer.toString(i);    else      retStr = "" + i;    return retStr;  }} 

真機效果圖:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 论坛| 合肥市| 寿光市| 黄山市| 曲周县| 齐河县| 大城县| 龙山县| 荣昌县| 紫金县| 宁德市| 龙口市| 兴城市| 抚宁县| 景德镇市| 资兴市| 隆林| 商城县| 七台河市| 扎赉特旗| 桐梓县| 伊宁县| 西华县| 浦县| 五莲县| 中山市| 云霄县| 驻马店市| 建德市| 大名县| 花垣县| 濉溪县| 手游| 绍兴县| 英吉沙县| 平阳县| 锦州市| 怀仁县| 清苑县| 吉木乃县| 青铜峡市|