记录一下这个简单的功能而已。
先创建一个线程类
在此之前,你需要获取到歌曲,然后得到它的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);
}
}
效果:
如何得到本地歌曲请参考:
(http://blog.csdn.net/qq_36391075/article/details/75144100)
seekBar的简单使用请参考:
http://blog.csdn.net/qq_36391075/article/details/75268150