1. 程式人生 > >Android學習之使用seekbar進行歌曲的同步

Android學習之使用seekbar進行歌曲的同步

記錄一下這個簡單的功能而已。
先建立一個執行緒類
在此之前,你需要獲取到歌曲,然後得到它的duration。
使用mediaPlayer.start(),來播放歌曲,當歌曲開始播放的時候,
new LooperThread().start;

class LooperThread extends Thread{
      int i = 0;
        @Override
        public void run() {
            while(true){

                i = mediaPlayer.getCurrentPosition();

                if
(i<duration){ seekBar.setProgress(i); try{ sleep(10); }catch (InterruptedException e){ e.printStackTrace(); } }else { break; } } } }

因為eekBar.OnSeekBarChangeListener,所以要從寫三個方法:

@Override
    public void onStopTrackingTouch(SeekBar seekBar) {


    }

    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {

    }

    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
           if
(fromUser){ if(mediaPlayer!=null&&mediaPlayer.isPlaying()) { mediaPlayer.seekTo(progress); } } }

在我點選播放按鈕的時候:

 public void play() {
        if(mediaPlayer.isPlaying()){
            zanting.setImageResource(R.drawable.bofang);
            if(mediaPlayer!=null&&mediaPlayer.isPlaying()){
                Log.d("duration","sfsfsadfsadfsdaf");
                if(!play_Thread.isAlive())
                play_Thread.start();
            }
        }else {
            zanting.setImageResource(R.drawable.zanting);


        }

    }

效果:
這裡寫圖片描述