- 废话不多说,直接上代码,很简单的例子程序,根据拖动,可是实现歌曲的不同位置的播放。
- package mars.com;
- import android.app.Activity;
- import android.media.MediaPlayer;
- import android.media.MediaPlayer.OnCompletionListener;
- import android.os.AsyncTask;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.SeekBar;
- import android.widget.SeekBar.OnSeekBarChangeListener;
- import android.widget.TextView;
- public class DemoMP3Activity extends Activity {
- private Button play;
- private Button pause;
- private Button stop;
- private TextView info;
- private SeekBar seekBar;
- private MediaPlayer mediaPlayer;
- private boolean isPlay = true;// 播放标记
- private boolean isPause = false;// 暂停标记
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- info = (TextView) findViewById(R.id.textView1);
- play = (Button) findViewById(R.id.button1);
- pause = (Button) findViewById(R.id.button2);
- stop = (Button) findViewById(R.id.button3);
- seekBar = (SeekBar) findViewById(R.id.seekBar1);
- this.play.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- mediaPlayer = MediaPlayer.create(getApplicationContext(),
- R.raw.bird);
- if (mediaPlayer != null) {
- mediaPlayer.stop();
- }
- seekBar.setMax(mediaPlayer.getDuration());// 设置拖拽条的长度
- UpdateThread update = new UpdateThread();
- update.execute(1000);// 每一秒就更新一次进度条
- DemoMP3Activity.this.mediaPlayer
- .setOnCompletionListener(new OnCompletionListener() {
- public void onCompletion(MediaPlayer mp) {
- // 如果播放完了
- isPlay = false;
- mediaPlayer.release();// 释放资源
- }
- });
- try {
- mediaPlayer.prepare();
- mediaPlayer.start();
- info.setText("正在播放");
- } catch (Exception e) {
- info.setText(e.toString());
- }
- }
- });
- this.pause.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- if (mediaPlayer != null) {
- if (isPause == false) {
- mediaPlayer.pause();
- isPause = true;
- info.setText("暂停播放");
- } else {
- mediaPlayer.start();
- isPause = false;
- info.setText("继续播放");
- }
- }
- }
- });
- this.stop.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- if (mediaPlayer != null) {
- mediaPlayer.stop();
- info.setText("停止播放");
- }
- }
- });
- this.seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
- public void onStopTrackingTouch(SeekBar seekBar) {
- mediaPlayer.seekTo(seekBar.getProgress());
- }
- public void onStartTrackingTouch(SeekBar seekBar) {
- }
- public void onProgressChanged(SeekBar seekBar, int progress,
- boolean fromUser) {