Android 多媒体文件获取工具类

package com.android.ocr.util;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.provider.MediaStore;

/**
 * 根据MediaStore查询信息
 * @Project    App_ReadCard
 * @Package    com.android.ocr.util
 * @author     chenlin
 * @version    1.0
 * @Date       2013年6月16日
 * @Note       TODO
 */
public class MediaStoreUtil {

    private static final String TAG = "MediaStoreUtil";

    /**
     * 查询音频文件名称
     * 
     * @param context
     * @return
     */
    public static List<String> getAudioNames(Context context) {
        List<String> list = new ArrayList<String>();
        Cursor cursor = context.getContentResolver().query(
                MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
                new String[] { MediaStore.Audio.Media._ID, MediaStore.Audio.Media.DISPLAY_NAME, MediaStore.Audio.Media.TITLE,
                        MediaStore.Audio.Media.DURATION, MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media.ALBUM,
                        MediaStore.Audio.Media.YEAR, MediaStore.Audio.Media.MIME_TYPE, MediaStore.Audio.Media.SIZE,
                        MediaStore.Audio.Media.DATA }, null, new String[] {}, null);
        while (cursor.moveToNext()) {
            String fileName = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME));
            list.add(fileName);
        }
        return list;
    }

    /**
     * 查询图片文件名称
     * 
     * @param context
     * @return
     */
    public static List<String> getImageNames(Context context) {
        List<String> list = new ArrayList<String>();
        Cursor cursor = context.getContentResolver().query(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                new String[] { MediaStore.Images.Media._ID, MediaStore.Images.Media.DISPLAY_NAME, MediaStore.Images.Media.TITLE,
                        MediaStore.Images.Media.MIME_TYPE, MediaStore.Images.Media.SIZE, MediaStore.Images.Media.DATA }, null,
                new String[] {}, null);
        while (cursor.moveToNext()) {
            Logger.i(TAG, "filePath==" + MediaStore.Images.Media.DATA);
            String filePath = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
            String fileName = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DISPLAY_NAME));
            list.add(filePath + "/" + fileName);
        }
        return list;
    }

    /**
     * 查询图片文件
     * 
     * @param context
     * @return
     */
    public static List<File> getImages(Context context) {
        List<File> list = new ArrayList<File>();
        Cursor cursor = context.getContentResolver().query(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                new String[] { MediaStore.Images.Media._ID, MediaStore.Images.Media.DISPLAY_NAME, MediaStore.Images.Media.TITLE,
                        MediaStore.Images.Media.MIME_TYPE, MediaStore.Images.Media.SIZE, MediaStore.Images.Media.DATA }, null,
                new String[] {}, null);
        while (cursor.moveToNext()) {
            String filePath = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
            Logger.i(TAG, "filePath==" + filePath);
            String fileName = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DISPLAY_NAME));
            //Logger.i(TAG, "fileName==" + fileName);
            File file = new File(filePath);
            list.add(file);
        }
        return list;
    }

    /**
     * 查询文件
     * 
     * @param context
     * @return
     */
    public static List<File> getAllFiles(Context context) {
        List<File> list = new ArrayList<File>();
        Cursor cursor = context.getContentResolver().query(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                new String[] { MediaStore.Images.Media._ID, MediaStore.Images.Media.DISPLAY_NAME, MediaStore.Images.Media.TITLE,
                        MediaStore.Images.Media.MIME_TYPE, MediaStore.Images.Media.SIZE, MediaStore.Images.Media.DATA }, null,
                new String[] {}, null);
        while (cursor.moveToNext()) {
            String filePath = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
            Logger.i(TAG, "filePath==" + filePath);
            String fileName = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DISPLAY_NAME));
            //Logger.i(TAG, "fileName==" + fileName);
            File file = new File(filePath);
            list.add(file);
        }
        return list;
    }

    /**
     * 获取所有的缩列图
     * 
     * @param context
     * @return
     */
    public static Bitmap[] getBitmaps(Context context) {
        Bitmap[] bitmaps;
        String[] projection = { MediaStore.Images.Media._ID, MediaStore.Images.Media.DATA };
        Cursor cursor = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null,
                MediaStore.Images.Media._ID);
        int count = cursor.getCount();
        int image_column_index = cursor.getColumnIndex(MediaStore.Images.Media._ID);
        bitmaps = new Bitmap[count];
        for (int i = 0; i < count; i++) {
            cursor.moveToPosition(i);
            int id = cursor.getInt(image_column_index);
            bitmaps[i] = MediaStore.Images.Thumbnails.getThumbnail(context.getContentResolver(), id,
                    MediaStore.Images.Thumbnails.MICRO_KIND, null);
        }
        return bitmaps;
    }

    /**
     * 查询图片缩列文件名称
     * 
     * @param context
     * @return
     */
    public static List<String> getThumbNames(Context context) {
        List<String> list = new ArrayList<String>();
        Cursor cursor = context.getContentResolver().query(
                MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,
                new String[] { MediaStore.Images.Thumbnails._ID, MediaStore.Images.Thumbnails.DATA, MediaStore.Images.Thumbnails.KIND,
                        MediaStore.Images.Thumbnails.IMAGE_ID }, null, new String[] {}, null);
        while (cursor.moveToNext()) {
            String fileName = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DISPLAY_NAME));
            list.add(fileName);
        }
        return list;
    }

    /**
     * 获得所有视频文件
     * @param context
     */
    public static ArrayList<VideoInfo> getVideoInfo(Context context){
        String[] thumbColumns = new String[]{  
                MediaStore.Video.Thumbnails.DATA,  
                MediaStore.Video.Thumbnails.VIDEO_ID  
        };  

        String[] mediaColumns = new String[]{  
                MediaStore.Video.Media.DATA,  
                MediaStore.Video.Media._ID,  
                MediaStore.Video.Media.TITLE,  
                MediaStore.Video.Media.MIME_TYPE  
        };  

        //首先检索SDcard上所有的video  
        Cursor cursor = context.getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, mediaColumns, null, null, null);  

        ArrayList<VideoInfo> videoList = new ArrayList<VideoInfo>();  

        if(cursor.moveToFirst()){  
            do{  
                VideoInfo info = new VideoInfo();  

                info.filePath = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA));  
                info.mimeType = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.MIME_TYPE));  
                info.title = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.TITLE));  

                //获取当前Video对应的Id,然后根据该ID获取其Thumb  
                int id = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media._ID));  
                String selection = MediaStore.Video.Thumbnails.VIDEO_ID +"=?";  
                String[] selectionArgs = new String[]{  
                        id+""  
                };  
                Cursor thumbCursor = context.getContentResolver().query(MediaStore.Video.Thumbnails.EXTERNAL_CONTENT_URI, thumbColumns, selection, selectionArgs, null);  

                if(thumbCursor.moveToFirst()){  
                    info.thumbPath = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Thumbnails.DATA));  

                }  

                //然后将其加入到videoList  
                videoList.add(info);  

            }while(cursor.moveToNext());  
        }  
        return videoList;
    }

    static class VideoInfo{  
        String filePath;  
        String mimeType;  
        String thumbPath;  
        String title;  
    }  
}

———————————————————————
(java 架构师全套教程,共760G, 让你从零到架构师,每月轻松拿3万)
有需求者请进站查看,非诚勿扰

https://item.taobao.com/item.htm?spm=686.1000925.0.0.4a155084hc8wek&id=555888526201

01.高级架构师四十二个阶段高
02.Java高级系统培训架构课程148课时
03.Java高级互联网架构师课程
04.Java互联网架构Netty、Nio、Mina等-视频教程
05.Java高级架构设计2016整理-视频教程
06.架构师基础、高级片
07.Java架构师必修linux运维系列课程
08.Java高级系统培训架构课程116课时
(送:hadoop系列教程,java设计模式与数据结构, Spring Cloud微服务, SpringBoot入门)
——————————————————————–

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lovoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值