得到所有音乐
在做android音乐播放器吗?还在扫描目录吗?
不需要啦,直接可以通过系统接口得到手机内的所有音乐哦。
而且会帮你解析好id3歌曲信息
contentProvider是个好东西,有什么需要和其他程序共享的,都可以借助这个实现
音乐也不例外
手机开机时会有提示正在扫描媒体,然后扫描完成后还会发送一个media_scanner_finished广播来通知你
然后就可以直接查询到所有音乐信息了,使用contentResolver实现
很简单很简单,但我之前网上找了好久都没找到,这次无意中发现一段代码,拿出来共享一下
直接贴代码了。
class Music { String title, art, album; long length;public String toString() { return "{title:" + title + ",art:" + art + ",album:" + album + ",length:" + length + "}"; } } List<Music> list = new ArrayList<Music>(); Context ctx = getContext(); ContentResolver cr = ctx.getContentResolver(); Cursor c = cr.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER); while (c.moveToNext()) { Music music = new Music(); music.title = c.getString(c .getColumnIndex(MediaStore.Audio.AudioColumns.TITLE)); music.art = c.getString(c .getColumnIndex(MediaStore.Audio.AudioColumns.ARTIST)); music.album = c.getString(c .getColumnIndex(MediaStore.Audio.AudioColumns.ALBUM)); music.length = c.getLong(c .getColumnIndex(MediaStore.MediaColumns.SIZE)); list.add(music); } for (Music m : list) { System.out.println(m); }</pre>
好了,全部完工。