Android开发中如何实现一个音乐播放器功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
需求1:将内存卡中的MP3音乐读取出来并显示到列表当中
1。从数据库中查询所有音乐数据,保存到列表集合当中,当列表中存放的是Mp3Info对象
2。迭代集列表合,把每一个Mp3Info对象的所有属性,保存到地图对象当中
3。定义一个列表集合,把地图对象添加到列表集合当中
4。通过定义一个SimpleAdpter,调用setAdpter方法,将数据显示到列表当中
/* * *用于从数据库中查询歌曲的信息,保存当在列表中 * * @return */公共ListgetMp3Infos () { 鼠标光标=getContentResolver () .query ( MediaStore.Audio.Media。EXTERNAL_CONTENT_URI,空,空,空, MediaStore.Audio.Media.DEFAULT_SORT_ORDER); List mp3Infos=new ArrayList (); for (int i=0;我& lt;cursor.getCount ();我+ +){ Mp3Info Mp3Info=new Mp3Info (); cursor.moveToNext (); 长id=cursor.getLong(游标 .getColumnIndex (MediaStore.Audio.Media._ID));//音乐id 字符串标题=cursor.getString((游标 .getColumnIndex (MediaStore.Audio.Media.TITLE)));//音乐标题 字符串艺术家=cursor.getString(游标 .getColumnIndex (MediaStore.Audio.Media.ARTIST));//艺术家 长时间=cursor.getLong(游标 .getColumnIndex (MediaStore.Audio.Media.DURATION));//时长 长尺寸=cursor.getLong(游标 .getColumnIndex (MediaStore.Audio.Media.SIZE));//文件大小 字符串url=cursor.getString(游标 .getColumnIndex (MediaStore.Audio.Media.DATA));//文件路径 int isMusic=cursor.getInt(游标 .getColumnIndex (MediaStore.Audio.Media.IS_MUSIC));//是否为音乐 如果(isMusic !=0){//只把音乐添加到集合当中 mp3Info.setId (id); mp3Info.setTitle(标题); mp3Info.setArtist(艺术家); mp3Info.setDuration(持续时间); mp3Info.setSize(大小); mp3Info.setUrl (url); mp3Infos.add (mp3Info); } } 返回mp3Infos; }
/* * *填充列表 * @param mp3Infos */公共空间setListAdpter (Listmp3Infos) { List 比;mp3list=new ArrayList 在(); (迭代器迭代器=mp3Infos.iterator ();iterator.hasNext ();) { Mp3Info Mp3Info=(Mp3Info) iterator.next (); String> HashMap<字符串;地图=new HashMap<字符串,String> (); map.put (“title" mp3Info.getTitle ()); map.put (“Artist" mp3Info.getArtist ()); map.put (“duration" String.valueOf (mp3Info.getDuration ())); map.put (“size" String.valueOf (mp3Info.getSize ())); map.put (“url" mp3Info.getUrl ()); mp3list.add(地图); } mAdapter=new SimpleAdapter (mp3list,这 出来。music_list_item_layout、新String [] {“title",“Artist",“duration"}, 新int [] {R.id。music_title R.id。music_Artist R.id。music_duration}); mMusiclist.setAdapter (mAdapter); }
实现效果如图:
mMusiclist=(视图)findViewById (R.id.music_list); mMusiclist。setOnItemClickListener(新MusicListItemClickListener ()); mp3Infos=getMp3Infos (); setListAdpter (getMp3Infos ());
2只,定义一个实现OnItemClickListener接口的内部类
Android开发中如何实现一个音乐播放器功能