public class Activity1 extends Activity {
private TextView tv;
private ViewPager vp;
private TextView tv1;
private TextView tv2;
private Button b1;
private Button b2;
private Button b3;
private SeekBar sb;
private List
l;
private int key;
private MediaPlayer mp;
private List
l1;
private Timer t;
private SimpleDateFormat sdf;
private boolean pause;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity1);
initData();
musicData();
vp = (ViewPager) findViewById(R.id.vp);
tv1 = (TextView) findViewById(R.id.tv1);
tv2 = (TextView) findViewById(R.id.tv2);
b1 = (Button) findViewById(R.id.b1);
b2 = (Button) findViewById(R.id.b2);
b3 = (Button) findViewById(R.id.b3);
sb = (SeekBar) findViewById(R.id.sb);
Intent i = getIntent();
key = i.getIntExtra("key", 0);
vp.setAdapter(new MyAdapter());
vp.setCurrentItem(key);
mp = new MediaPlayer();
mp.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
}
});
sb.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
if (mp != null && fromUser == true) {
mp.seekTo(progress);
}
}
});
vp.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
key = arg0;
if (mp != null) {
t.cancel();
mp.stop();
}
mp.reset();
pause = false;
start();
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
b1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
start();
}
});
b2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
pause = true;
if (mp != null && mp.isPlaying()) {
mp.pause();
}
t.cancel();
}
});
b3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
pause = false;
if (mp != null) {
t.cancel();
mp.stop();
}
mp.reset();
}
});
}
private void start() {
try {
if (!pause) {
mp = MediaPlayer.create(Activity1.this, l1.get(key));
}
} catch (Exception e) {
e.printStackTrace();
}
mp.start();
// 长度
int duration = mp.getDuration();
sb.setMax(duration);
sdf = new SimpleDateFormat("mm:ss");
String total = sdf.format(duration);
tv2.setText(total);
t = new Timer();
TimerTask tt = new TimerTask() {
@Override
public void run() {
final int currentPosition = mp.getCurrentPosition();
final String current = sdf.format(currentPosition);
runOnUiThread(new Runnable() {
@Override
public void run() {
sb.setProgress(currentPosition);
tv1.setText(current);
}
});
}
};
t.schedule(tt, 0, 500);
}
class MyAdapter extends PagerAdapter {
@Override
public int getCount() {
return 10;
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
View v = View.inflate(Activity1.this, R.layout.vp, null);
tv = (TextView) v.findViewById(R.id.tv);
tv.setText(l.get(position));
container.addView(v);
return v;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}
/*
* protected void onDestroy() { super.onDestroy(); if (mp != null) {
* mp.release(); mp = null; } }
*/
private void initData() {
l = new ArrayList
();
for (int i = 0; i < 10; i++) {
l.add("歌曲" + (i + 1));
}
}
private void musicData() {
l1 = new ArrayList
();
l1.add(R.raw.aaa);
l1.add(R.raw.bbb);
l1.add(R.raw.ccc);
}
}
加载SD卡中音乐:
mp.setDataSource("mnt/sdcard/aaa.mp3");
mp.prepare();