java实现音乐播放进度条_实现本地音乐选择,播放,带可拖动进度条

需求:项目需要实现扫描本地sdcard上的所有音乐.并且可以进行播放,带可拖动进度条。

实现步骤:1.每个音乐文件在数据中有一条记录,开启一个线程查找数据库找出所有音乐文件,根据后缀名进行过滤,用handle通知ListView展示

2.ListView每一行设置单击事件,选中的那首歌曲进行播放。

3.ListView每一行都有seekBar,根据item选中进行显示隐藏。

1. activity文件 SelectMusicActivity.java

public class SelectMusicActivity extends Activity{

private final static int MUSIC_SCARCH_FINISH = 1;//音乐扫描完成

private ProgressDialog mProgressDialog;

private List musicFiles=new ArrayList();

private ListView listMusic;

private MyAdapter myAdapter;

private boolean isPlaying;//是否正在播放

private int currentPosition = -1;

private ViewHolder currentHolder;

private MediaPlayer mediaPlayer=new MediaPlayer();//音乐播放工具

private Handler mHandler=new Handler(){

public void handleMessage(Message msg) {

switch (msg.what) {

case MUSIC_SCARCH_FINISH://音乐扫描完成

mProgressDialog.dismiss();

listMusic.setAdapter(myAdapter=new MyAdapter());

break;

}

};

};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_select_music);

getMusicFloder();//查询本地所有音乐

listMusic=(ListView) findViewById(R.id.list_music);

}

@Override

protected void onDestroy() {

super.onDestroy();

if(null!=mediaPlayer){

mediaPlayer.release();

mediaPlayer=null;

isPlaying=false;

}

}

//-------------------------私有类  私有方法---------------------

private class MyAdapter extends BaseAdapter{

@Override

public int getCount() {

// TODO Auto-generated method stub

return musicFiles.size();

}

@Override

public Object getItem(int position) {

// TODO Auto-generated method stub

return musicFiles.get(position);

}

@Override

public long getItemId(int position) {

// TODO Auto-generated method stub

return position;

}

@SuppressLint("ResourceAsColor")

@Override

public View getView(final int position, View convertView, ViewGroup parent) {

final ViewHolder holder;

if(null==convertView){

holder=new ViewHolder();

convertView = LayoutInflater.from(SelectMusicActivity.this).inflate(R.layout.item_music_file,parent,false);

holder.musicInfo=(LinearLayout) convertView.findViewById(R.id.music_info);

holder.ivPlayState=(ImageView) convertView.findViewById(R.id.iv_play_state);

holder.musicFolderName=(TextView) convertView.findViewById(R.id.music_folder_name);

holder.musicDuration

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值