1600802120

   1.实现的功能

  1.音乐播放器的前一首,下一首,暂停,播放功能。

  

  • 2.对音乐播放器界面截图
  •  


     


     


     

    .将其中的关键代码放置自己的博客,比如:播放功能的代码
    1.上一首下一首切换,暂停播放
private void changeMusic(int position) {//切歌
if (position < 0) {
musicposition = position = list1.size() - 1;

} else if (position > list1.size() - 1) {
musicposition = position = 0;
}

if (mediaPlayer == null) {
mediaPlayer = new MediaPlayer();
}
try {
mediaPlayer.reset();
mediaPlayer.setDataSource(list1.get(position).path);
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IOException e) {
e.printStackTrace();
}

}
public void onClick(View v) {

switch (v.getId()) {
case R.id.play:
if (!mediaPlayer.isPlaying()) {
changeMusic(0);
}
break;
case R.id.pause:
if (mediaPlayer.isPlaying()) {
mediaPlayer.pause();
}
break;
case R.id.stop:
if (mediaPlayer.isPlaying()) {
mediaPlayer.reset();//停止播放

}
break;
case R.id.next:
{
changeMusic(++musicposition);


;}

break;


case R.id.last:
changeMusic(--musicposition);
break;
}
}

 2.扫描sd卡并得到音乐文件

mListView = (ListView) findViewById(R.id.list1);
list1 = new ArrayList<>();
//把扫描到的音乐赋值给list
list1 = adpter2.getMusicData(this);


public static List<musiclist> getMusicData(Context context) {
List<musiclist>list = new ArrayList<musiclist>();
Cursor cursor = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null,
null, MediaStore.Audio.AudioColumns.IS_MUSIC);
if (cursor != null) {
while (cursor.moveToNext()) {
musiclist song = new musiclist();
song.song = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME));
song.path = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
song.size = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.SIZE));
list.add(song);
}
cursor.close();
}
return list;
}


 3.通过适配器输出音乐文件属性

adapter = new Adapter1(this, list1);
        mListView.setAdapter(adapter);

public class Adapter1 extends BaseAdapter {
    private Context context;
    private List<musiclist> list;

    public Adapter1(MainActivity mainActivity, List<musiclist> list) {
        this.context = mainActivity;
        this.list = list;

    }

    public int getCount() {
        return list.size();
    }

    public Object getItem(int i) {
        return list.get(i);
    }

    public long getItemId(int i) {
        return i;
    }

    public View getView(final int i, View view, ViewGroup viewGroup) {
        ViewHolder holder = null;
        if (view == null) {
            holder = new ViewHolder();
            view = View.inflate(context, R.layout.list1, null);
            holder.song = (TextView) view.findViewById(R.id.text1);
            holder.position = (TextView) view.findViewById(R.id.text4);
            view.setTag(holder);
        } else {
            holder = (ViewHolder) view.getTag();
        }
        holder.song.setText(list.get(i).song.toString());
        holder.position.setText(i+1+"");

        return view;
    }
    class ViewHolder{
        TextView song;
        TextView position;

    }

}

4.对listview的是否点击和是否播放的添加监听器

 mediaPlayer.setOnCompletionListener( this);
        mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {

                musicposition = position;
                changeMusic(musicposition);

            }
        });
    }

  

  

4.代码链接  https://git.coding.net/ahabbw/android12.git

5.apk的下载地址  https://git.coding.net/ahabbw/android12.git

posted @ 2018-12-11 16:12  1600802120-李一泓  阅读(205)  评论(0编辑  收藏  举报