【www.bbyears.com--php常用代码】
读取本地音乐文件
源代码:
代码如下importandroid.media.MediaPlayer;
importandroid.support.v7.app.AppCompatActivity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.ImageButton;
importandroid.widget.SeekBar;
importandroid.widget.TextView;
publicclassMainActivityextendsAppCompatActivity {
privateMediaPlayer mediaPlayer;
privateSeekBar seekBar;
privateTextView tv_mian_stop;
privateTextView tv_mian_start;
privateintmusicaction;
@Override
protectedvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_mian_start = (TextView) findViewById(R.id.tv_mian_start);
tv_mian_stop = (TextView) findViewById(R.id.tv_mian_stop);
seekBar = (SeekBar) findViewById(R.id.seekBar);
//进度条的监听事件
seekBar.setOnSeekBarChangeListener(newSeekBar.OnSeekBarChangeListener() {
@Override
publicvoidonProgressChanged(SeekBar seekBar,intprogress,booleanfromUser) {
//改变
//每当进度条发生改变时tv_mian_start的值发生变化
//new TimeUtil().secToTime()一个外部类(时间格式转化)
tv_mian_start.setText(newTimeUtil().secToTime(mediaPlayer.getCurrentPosition()/1000)+"");
}
@Override
publicvoidonStartTrackingTouch(SeekBar seekBar) {
//开始
}
@Override
publicvoidonStopTrackingTouch(SeekBar seekBar) {
//结束
//获取拖动结束之后的位置
intprogrss=seekBar.getProgress();
mediaPlayer.seekTo(progrss);
}
});
}
publicvoidisPlay(View view){
ImageButton imageButton= (ImageButton) view;
if(mediaPlayer==null){
mediaPlayer = MediaPlayer.create(this, R.raw.seve);
mediaPlayer.start();
//把图标修改为暂停的图标
imageButton.setImageResource(android.R.drawable.ic_media_pause);
//获取音乐的总时长
intmuiscsum=mediaPlayer.getDuration();
//设置进度条的最大值为总时长
seekBar.setMax(muiscsum);
//执行一个多线程的耗时操作
newMyThread().start();
tv_mian_stop.setText(newTimeUtil().secToTime(muiscsum/1000)+"");
}elseif(mediaPlayer.isPlaying()){
mediaPlayer.pause();
imageButton.setImageResource(android.R.drawable.ic_media_play);
}else{
mediaPlayer.start();
imageButton.setImageResource(android.R.drawable.ic_media_pause);
}
}
classMyThreadextendsThread{
@Override
publicvoidrun() {
super.run();
//当进度条的当前值小于最大值时进度条发生改变
while(seekBar.getProgress()<=seekBar.getMax()){
//获取当前音乐播放的位置
musicaction = mediaPlayer.getCurrentPosition();
//让进度条动起来
seekBar.setProgress(musicaction);
}
}
}
}
时间格式转化类:
代码如下publicclassTimeUtil {
publicstaticString secToTime(inttime) {
String timeStr =null;
inthour =0;
intminute =0;
intsecond =0;
if(time <=0)
return"00:00";
else{
minute = time /60;
if(minute<60) {
second = time %60;
timeStr = unitFormat(minute) +":"+ unitFormat(second);
}else{
hour = minute /60;
if(hour >99)
return"99:59:59";
minute = minute %60;
second = time - hour *3600- minute *60;
timeStr = unitFormat(hour) +":"+ unitFormat(minute) +":"+ unitFormat(second);
}
}
returntimeStr;
}
privatestaticString unitFormat(inti) {
String retStr =null;
if(i >=0&& i<10)
retStr ="0"+ Integer.toString(i);
else
retStr =""+ i;
returnretStr;
}
}
真机效果图: