Android學習之使用seekbar進行歌曲的同步
阿新 • • 發佈:2019-01-02
記錄一下這個簡單的功能而已。
先建立一個執行緒類
在此之前,你需要獲取到歌曲,然後得到它的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);
}
}
效果: