Android仿音乐播放器功能
短信预约 -IT技能 免费直播动态提醒
本文实例为大家分享了Android仿音乐播放器功能的具体代码,供大家参考,具体内容如下
读取本地音乐文件
源代码:
import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.SeekBar;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private MediaPlayer mediaPlayer;
private SeekBar seekBar;
private TextView tv_mian_stop;
private TextView tv_mian_start;
private int musicaction;
@Override
protected void onCreate(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(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
//改变
//每当进度条发生改变时tv_mian_start的值发生变化
//new TimeUtil().secToTime()一个外部类(时间格式转化)
tv_mian_start.setText(new TimeUtil().secToTime(mediaPlayer.getCurrentPosition()/1000)+"");
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
//开始
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
//结束
//获取拖动结束之后的位置
int progrss=seekBar.getProgress();
mediaPlayer.seekTo(progrss);
}
});
}
public void isPlay(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);
//获取音乐的总时长
int muiscsum=mediaPlayer.getDuration();
//设置进度条的最大值为总时长
seekBar.setMax(muiscsum);
//执行一个多线程的耗时操作
new MyThread().start();
tv_mian_stop.setText(new TimeUtil().secToTime(muiscsum/1000)+"");
}else if (mediaPlayer.isPlaying()){
mediaPlayer.pause();
imageButton.setImageResource(android.R.drawable.ic_media_play);
}else{
mediaPlayer.start();
imageButton.setImageResource(android.R.drawable.ic_media_pause);
}
}
class MyThread extends Thread{
@Override
public void run() {
super.run();
//当进度条的当前值小于最大值时进度条发生改变
while(seekBar.getProgress()<=seekBar.getMax()){
//获取当前音乐播放的位置
musicaction = mediaPlayer.getCurrentPosition();
//让进度条动起来
seekBar.setProgress(musicaction);
}
}
}
}
时间格式转化类:
public class TimeUtil {
public static String secToTime(int time) {
String timeStr = null;
int hour = 0;
int minute = 0;
int second = 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);
}
}
return timeStr;
}
private static String unitFormat(int i) {
String retStr = null;
if (i >= 0 && i < 10)
retStr = "0" + Integer.toString(i);
else
retStr = "" + i;
return retStr;
}
}
真机效果图:
您可能感兴趣的文章:Android音乐播放器制作 点击歌曲实现播放(二)Android音乐播放器制作 扫描本地音乐显示在手机(一)Android简易音乐播放器实现代码详解Android应用开发--MP3音乐播放器代码实现(一)Android MediaPlayer实现音乐播放器实例代码Android 开源在线音乐播放器Android 音乐播放器的开发实例详解Android基于Service的音乐播放器Android绘制音乐播放器示波器Android音乐播放器制作 加入控制台(三)
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341