从外部存储器中读取多媒体文件的信息,并保存在一个ArrayList数组
将多媒体文件的信息,并保存在一个ArrayList数组:首先定义一个ReadFromSD的类,这个类中实现返回多媒体信息的数组对象
package com.harrison.myplayer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.Log;
public class ReadFromSD {
public ArrayList<Map<String, Object>> readMediaFromSD(Context context)
{
if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
return null;
Cursor cursor = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
new String[]{MediaStore.Audio.Media._ID,MediaStore.Audio.Media.ALBUM_ID,MediaStore.Audio.Media.DISPLAY_NAME,MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.ALBUM,MediaStore.Audio.Media.ARTIST,MediaStore.Audio.Media.DATA,MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media.YEAR,MediaStore.Audio.Media.MIME_TYPE,MediaStore.Audio.Media.SIZE},
MediaStore.Audio.Media.MIME_TYPE+"=? or " + MediaStore.Audio.Media.MIME_TYPE+"=?",
new String[]{"audio/mpeg","audio/x-ms-wma"},
MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
if (cursor.getCount() <= 0 && cursor.getColumnCount() <= 0)
return null;
ArrayList<Map<String, Object>> ListAll = new ArrayList<Map<String,Object>>();
String id,songname,title,album,artist,datapath,duration,size;
long albumid;
while(cursor.moveToNext())
{
Map<String, Object> map = new HashMap<String, Object>();
id = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media._ID));
albumid = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID));
songname = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME));
title = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
album = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM));
artist = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));
datapath = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
duration = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION));
size = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.SIZE));
map.put("albumid", albumid);
map.put("songname", songname);
map.put("title", title);
map.put("album", album);
map.put("artist", artist);
map.put("datapath", datapath);
map.put("duration", duration);
map.put("size", size);
ListAll.add(map);
}
return ListAll;
}
下面是获取Album的图片信息地址
public String getAlbum(long album_id,Context context)存储 多媒体 Album图片
{
String mUriAlbums = "content://media/external/audio/albums";
String[] projection = new String[] { "album_art" };
String album_art = null;
Cursor cursor = context.getContentResolver().query(
Uri.parse(mUriAlbums + "/" + Long.toString(album_id)),
projection, null, null, null);
if (cursor.getCount() > 0 && cursor.getColumnCount() > 0)
{
cursor.moveToNext();
album_art = cursor.getString(0);
Log.d("TAG", "album_id = " + album_id);
Log.d("TAG", "album_art = " + album_art);
}
cursor.close();
cursor = null;
return album_art;
}
补充:移动开发 , Android