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
转载于:https://www.cnblogs.com/liyih/p/10102740.html
原文链接:https://blog.csdn.net/weixin_30342827/article/details/96115801
本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。
还没有人抢沙发呢~