03.Android之多媒体——使用ContentResolver获取音频文件

来源:互联网 发布:android app源码 编辑:程序博客网 时间:2024/06/05 16:36

通过ContentResolver类成员方法

query(Uri uri, String[] projection, String selection,String[] selectionArgs,String sortOrder); 

查询Android系统已经存在的 媒体数据库 来获取的;
//方法一:public void getMusic(){Cursor cur = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,                new String[]{MediaStore.Audio.Media.TITLE,                MediaStore.Audio.Media.DURATION, //音频文件播放时长                MediaStore.Audio.Media.ARTIST,                MediaStore.Audio.Media._ID,                MediaStore.Audio.Media.DATA}, //音频文件路径                null, null, null);if(cur == null){System.out.println("————查询失败!————");}else if(!cursor.moveToFirst()){System.out.println("————音频不存在!————");}do{Music m = new Music();m.setTitle(cur.getString(0));         //0,1,2,3,4 和上面query(Uri uri, String[] projection, String selection, m.setDuration(cur.getString(1));      // String[] selectionArgs,String sortOrder);第二个参数的顺序是对应的m.setArtist(cur.getString(2));m.setId(cur.getString(3));m.setPath(cur.getString(4));}while(cur.moveToNext());}_____________________________________________________________________________________________________________public class Music {private String title;private String artist;private String id;private String path;private String duration;public String getDuration() {return duration;}public void setDuration(String duration) {this.duration = duration;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getArtist() {return artist;}public void setArtist(String artist) {this.artist = artist;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getPath() {return path;}public void setPath(String path) {this.path = path;}//方法二:public void getMusic(){ContentResolver contentResolver = getContentResolver();Uri uri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;Cursor cursor = contentResolver.query(uri, null, null, null, null);if(cursor == null){System.out.println("————查询失败!————");}else if(!cursor.moveToFirst()){System.out.println("————音频不存在!————");}else{int data = cursor.getColumnIndex(android.provider.MediaStore.Audio.Media.DATA);//对应数据库的列号int display_name = cursor.getColumnIndex(android.provider.MediaStore.Audio.Media.DISPLAY_NAME); //对应数据库的列号do{String music_name = cursor.getString(display_name);//音频文件名String path = cursor.getString(data);//音频文件路径}while(cursor.moveToNext());}}