获取SD卡所有的视频文件路径
“`
public static ArrayList getAllVideoUrls(Context context){
ArrayList allVideoUrls = new ArrayList();
Uri mImageUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
ContentResolver mContentResolver = context.getContentResolver();Cursor mCursor = mContentResolver.query(mImageUri, null, null, null, MediaStore.Video.Media.DEFAULT_SORT_ORDER); while (mCursor.moveToNext()) { String path = mCursor.getString(mCursor .getColumnIndex(MediaStore.Images.Media.DATA)); allVideoUrls.add(path); } mCursor.close(); return allVideoUrls;
}
2. 获取视频的缩略图
1. `
/**
*
* @Title: getVideoThumbnail_one
* @Description: 使用MediaMetadataRetriever获取视频的缩略图,
* getFrameAtTime()获取有代表性的视频帧位图
* getFrameAtTime(long timeUs) 获取特定时间的位图
* @param path
* @param time
* @return
* @return: Bitmap
*/
public static Bitmap getVideoThumbnail_one(String path,int time){
Bitmap bitmap = null;
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(path);
bitmap = retriever.getFrameAtTime();
return bitmap;
}
2.
/**
* 此方法比上边的方法获取的缩略图小
* @Title: getVideoThumbnail_two
* @Description: 通过ThumbnailUtils获取缩略图,提供的三个静态方法:
* createVideoThumbnail(String filePath, int kind):filepath:视频的路径;king:MICRO_KIND(微型)和MINI_KIND(迷你型)前者的分辨率更低
* extractThumbnail(Bitmap source, int width, int height, int options) //直接对Bitmap进行缩略操作,最后一个参数定义为OPTIONS_RECYCLE_INPUT ,来回收资源
* extractThumbnail(Bitmap source, int width, int height) // 这个和上面的方法一样,无options选项
* @param path
* @return
* @return: Bitmap
*/
public static Bitmap getVideoThumbnail_two(String path){
Bitmap bitmap = null;
bitmap = ThumbnailUtils.createVideoThumbnail(path,
MediaStore.Images.Thumbnails.MICRO_KIND);
// bitmap = ThumbnailUtils.createVideoThumbnail(path,
// MediaStore.Images.Thumbnails.MINI_KIND);
// 获取视频的缩略图
return bitmap;
}
“`