Android开发中如何实现一个音乐播放器功能

  

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);   Listmp3Infos=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);   }      

实现效果如图:

 Android开发中如何实现一个音乐播放器功能”>,,</p> <p>需求2:点击列表的每一项,启动一个服务来播放音乐<br/> </p> <p> 1只,注册条目点击监听器OnItemClickListener <br/> </p> <p> 2只,定义一个实现OnItemClickListener接口的内部类<br/> </p> <p> 3只,定义一个继承服务的服务类PlayerServie </p> <p> 1只,注册条目点击监听器OnItemClickListener <br/> </p> <pre class= mMusiclist=(视图)findViewById (R.id.music_list);   mMusiclist。setOnItemClickListener(新MusicListItemClickListener ());   mp3Infos=getMp3Infos ();   setListAdpter (getMp3Infos ());   

2只,定义一个实现OnItemClickListener接口的内部类

Android开发中如何实现一个音乐播放器功能