1、将服务中的方法抽取问接口
2、添加Timer定时器,向MainActivity发送当前音乐播放进度,
int duration = player.getDuration();
int currentposition = player.getCurrentPosition();
3、主线程根据接收到的信息,更新UI
4、为SeekBar设置监听setOnSeekBarChangeListener,在service中添加seekto方法(接口中也要添加),在seekto方法中 player.seekto();
在onStopTrackingTouch()方法中调用在Service中的seekto()方法
MainActivity.java
package com.itheima.musicplayer;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.SeekBar;
public class MainActivity extends AppCompatActivity {
static Handler handler = new Handler(){
int currentposition;
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Bundle bundle = msg.getData();
int duration = bundle.getInt("duration");
currentposition = bundle.getInt("currentposition");
sb.setMax(duration);
sb.setProgress(currentposition);
}
};
MusicInterface mi;
private static SeekBar sb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sb= (SeekBar) findViewById(R.id.sb);
sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void