音乐

来源:互联网 发布:网络储存硬盘 编辑:程序博客网 时间:2024/04/29 00:19

package com.bawei;

import java.text.SimpleDateFormat;
import java.util.Timer;
import java.util.TimerTask;

import android.R.layout;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;

public class MainActivity extends Activity {
private SeekBar seekBar;
private MediaPlayer mediaPlayer;
private TextView tvz, tvs;
private int i;
private Timer timer;

int[] arr = new int[] { R.raw.bag, R.raw.aa, R.raw.qq };@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    // 初始化    intint();}private void intint() {    tvs = (TextView) findViewById(R.id.tvs);    tvz = (TextView) findViewById(R.id.tvz);    seekBar = (SeekBar) findViewById(R.id.seek);    seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {        //停止触摸        @Override        public void onStopTrackingTouch(SeekBar seekBar) {            int p=seekBar.getProgress();            if(mediaPlayer!=null){                mediaPlayer.seekTo(p);                startMusic(i);            }        }        //开始触摸        @Override        public void onStartTrackingTouch(SeekBar seekBar) {            if(timer!=null){                timer.cancel();            }        }        @Override        public void onProgressChanged(SeekBar seekBar, int progress,                boolean fromUser) {            // TODO Auto-generated method stub            if(fromUser){                tvs.setText(datesim(progress));            }        }    });}// 开始public void start(View view) {    startMusic(i);}// 暂停public void popse(View view) {       if(mediaPlayer!=null){           mediaPlayer.pause();       }}//停止public void stope(View view) {    stopeMusic();}// 下一首public void next(View view) {    i+=1;    if(i<arr.length){        stopeMusic();        startMusic(i);    }else {        i=0;        stopeMusic();        startMusic(i);    }}// 上一首public void text(View view) {    i-=1;    if(i>=0){        stopeMusic();        startMusic(i);    }else {        i=arr.length-1;        stopeMusic();        startMusic(i);    }}//开始方法public void startMusic(int p){    if(mediaPlayer!=null){        mediaPlayer.start();    }else{        mediaPlayer=MediaPlayer.create(this, arr[p]);        mediaPlayer.start();    }    mediaPlayer.setOnCompletionListener(new OnCompletionListener() {        @Override        public void onCompletion(MediaPlayer mp) {            //调用下一首            next(null);        }    });    seekBar();}//停止音乐方法    public void stopeMusic(){        if(mediaPlayer!=null){            if(timer!=null){                timer.cancel();            }            mediaPlayer.stop();            mediaPlayer.release();            mediaPlayer=null;        }    }

//时间换算
public String datesim(long date){
SimpleDateFormat simp=new SimpleDateFormat(“mm:ss”);
String string=simp.format(date);
return string;

}
public void seekBar(){
//获取最大值
int pro=mediaPlayer.getDuration();
seekBar.setMax(pro);
String str=datesim(pro);
tvz.setText(str);
timer=new Timer();
timer.schedule(new TimerTask() {

    @Override    public void run() {        if(mediaPlayer!=null){            runOnUiThread(new Runnable() {                @Override                public void run() {                    //得到播放时间                    int t=mediaPlayer.getCurrentPosition();                    seekBar.setProgress(t);                    String st=datesim(t);                    tvs.setText(st);                }            });        }    }}, 0,500);

}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
stopeMusic();
}

}

0 0
原创粉丝点击