当前位置:编程学习 > wap >>

从外部存储器中读取多媒体文件的信息,并保存在一个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)
{     
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;  
}
存储 多媒体 Album图片
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,