Android应用开发--MP3音乐播放器代…


需求1:将内存卡中的MP3音乐读取出来并显示到列表当中

 

1.   从数据库中查询所有音乐数据,保存到List集合当中,List当中存放的是Mp3Info对象
2.   迭代List集合,把每一个Mp3Info对象的所有属性,保存到Map对象当中
3.   定义一个List集合,把Map对象添加到List集合当中
4.   通过定义一个SimpleAdpter,调用setAdpter方法,将数据显示到列表当中

 

 

[java]  view plain  copy
  1.   
  2. public List getMp3Infos()  
  3.     Cursor cursor getContentResolver().query(  
  4.         MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, nullnullnull 
  5.         MediaStore.Audio.Media.DEFAULT_SORT_ORDER);  
  6.     List mp3Infos new ArrayList();  
  7.     for (int 0cursor.getCount(); i++)  
  8.         Mp3Info mp3Info new Mp3Info();  
  9.         cursor.moveToNext();  
  10.         long id cursor.getLong(cursor  
  11.             .getColumnIndex(MediaStore.Audio.Media._ID));   //音乐id  
  12.         String title cursor.getString((cursor   
  13.             .getColumnIndex(MediaStore.Audio.Media.TITLE)));//音乐标题  
  14.         String artist cursor.getString(cursor  
  15.             .getColumnIndex(MediaStore.Audio.Media.ARTIST));//艺术家  
  16.         long duration cursor.getLong(cursor  
  17.             .getColumnIndex(MediaStore.Audio.Media.DURATION));//时长  
  18.         long size cursor.getLong(cursor  
  19.             .getColumnIndex(MediaStore.Audio.Media.SIZE));  //文件大小  
  20.         String url cursor.getString(cursor  
  21.             .getColumnIndex(MediaStore.Audio.Media.DATA));              //文件路径  
  22.     int isMusic cursor.getInt(cursor  
  23.         .getColumnIndex(MediaStore.Audio.Media.IS_MUSIC));//是否为音乐  
  24.     if (isMusic != 0    //只把音乐添加到集合当中  
  25.         mp3Info.setId(id);  
  26.         mp3Info.setTitle(title);  
  27.         mp3Info.setArtist(artist);  
  28.         mp3Info.setDuration(duration);  
  29.         mp3Info.setSize(size);  
  30.         mp3Info.setUrl(url);  
  31.         mp3Infos.add(mp3Info);  
  32.          
  33.      
  34. return mp3Infos;  
  35.  

[java]  view plain  copy
  1.   
  2.     public void setListAdpter(List mp3Infos)  
  3.         List> mp3list new ArrayList>();  
  4.         for (Iterator iterator mp3Infos.iterator(); iterator.hasNext();)  
  5.             Mp3Info mp3Info (Mp3Info) iterator.next();  
  6.             HashMap map new HashMap();  
  7.             map.put("title"mp3Info.getTitle());  
  8.             map.put("Artist"mp3Info.getArtist());  
  9.             map.put("duration"String.valueOf(mp3Info.getDuration()));  
  10.             map.put("size"String.valueOf(mp3Info.getSize()));  
  11.             map.put("url"mp3Info.getUrl());  
  12.             mp3list.add(map);  
  13.          
  14.         mAdapter new SimpleAdapter(thismp3list,  
  15.                 R.layout.music_list_item_layout, new String[] "title""Artist""duration" },  
  16.                 new int[] R.id.music_title, R.id.music_Artist, R.id.music_duration });  
  17.         mMusiclist.setAdapter(mAdapter);      
  18.      

 

实现效果如图:

   



 

需求2:点击列表的每一项,启动一个服务来播放音乐

1.   注册条目点击监听器OnItemClickListener

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

3.   定义一个继承Service的服务类PlayerServie



1.   注册条目点击监听器OnItemClickListener

 

[java]  view plain  copy
  1. mMusiclist (ListView) findViewById(R.id.music_list);  
  2.         mMusiclist.setOnItemClickListener(new MusicListItemClickListener());  
  3.         mp3Infos getMp3Infos();  
  4.         setListAdpter(getMp3Infos());  


 

2.   定义一个实现OnItemClickListener接口的内部类
[java]  view plain  copy
  1. private class MusicListItemClickListener implements OnItemClickListener  
  2.     @Override  
  3.     public void onItemClick(AdapterView
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值