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