已经开始做MP3播放器几天了,一直忘了写博客了,在这过程中遇到了很多问题。也是初涉Android,各方面都不熟悉,所以有时确实让人有点头疼,还好都在一一克服。在这讲一下如何获取MP3文件里的信息。
我们知道,在一个音乐文件中包含了歌曲的作者,题目,时长,歌词等信息,我们要将这些信息显示出来Android提供了一些方法。如下:
String title = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));//获取歌名
String author = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)); //获取歌手名
int duration = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION)); //获取歌曲时间
String url = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA)); //获取文件路径
从以上代码我们可以看出都是通过cursor调用一个方法获得的信息,那么cursor是什么呢?
其实cursor就相当于一个容器,可以将信息存放在这之中,它通过解析器resolver调用query方法获得,如下:
ContentResolver resolver = getBaseContext().getContentResolver();
Cursor cursor = resolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
count=cursor.getCount(); //获得cursor条目的总数目,在这即是歌曲的总数目。
在获取这些信息之后我们还要将它们显示出来,我们知道在音乐播放器中有歌曲列表(list)在列表中又包含了多个条目(map)。这些条目包含了一些歌曲的基本信息.
public static List<Map<String,Object>> mfile; //创建一个list列表mfile;
Map<String,Object>map=new HashMap<String,Object>();
map.put("image",R.drawable.psu);
map.put("author",author);
map.put("title",title);
map.put("time",durat);
map.put("path", url);
mfile.add(map);
再将mfile添加到一个Activity即可。
还有很多东西有待解决,以后得好好努力。