android音乐播放器的功能,Android仿音乐播放器功能

本文实例为大家分享了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;

}

}

真机效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值