android 通过文件名获取SD卡视频缩略图


  仅仅是获取SD卡的啊,对于网络下载,就不清楚了

/**
	 * 通过文件名 获取视频的缩略图
	 * 
	 * @param context
	 * @param cr	 cr = getContentResolver();
	 * @param testVideopath  全路径 "/mnt/sdcard/sidamingbu.mp4";
	 * @return
	 */
	public static Bitmap getVideoThumbnail(Context context, ContentResolver cr, String testVideopath) {
		// final String testVideopath = "/mnt/sdcard/sidamingbu.mp4";
		ContentResolver testcr = context.getContentResolver();
		String[] projection = { MediaStore.Video.Media.DATA, MediaStore.Video.Media._ID, };
		String whereClause = MediaStore.Video.Media.DATA + " = '" + testVideopath + "'";
		Cursor cursor = testcr.query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, projection, whereClause,
				null, null);
		int _id = 0;
		String videoPath = "";
		if (cursor == null || cursor.getCount() == 0) {
			return null;
		}
		if (cursor.moveToFirst()) {

			int _idColumn = cursor.getColumnIndex(MediaStore.Video.Media._ID);
			int _dataColumn = cursor.getColumnIndex(MediaStore.Video.Media.DATA);

			do {
				_id = cursor.getInt(_idColumn);
				videoPath = cursor.getString(_dataColumn);
				System.out.println(_id + " " + videoPath);
			} while (cursor.moveToNext());
		}
		BitmapFactory.Options options = new BitmapFactory.Options();
		options.inDither = false;
		options.inPreferredConfig = Bitmap.Config.ARGB_8888;
		Bitmap bitmap = MediaStore.Video.Thumbnails.getThumbnail(cr, _id, Images.Thumbnails.MICRO_KIND,
				options);
		return bitmap;
	}


   若代码没看明白 ,可看下面的说明,  下面的是转载的 http://shazhuzhu1.iteye.com/blog/1254724


  

2 在android.provider.MediaStore中包含对图片和视频的各种处理类,其中 android.provider.MediaStore.Images.Thumbnails 和android.provider.MediaStore.Video.Thumbnails提供了图片和视频生成缩略图的方法。

3 图片和视频的索引及其与对应缩略图的对应关系在 /sdcard/data/data/com.android.providers.media/databases中的db文件中,

   图片对应表images和thumbnails

images   

  _id      图片id

  _data  图片路径

thumbnails

  _id          缩略图id

  _data      缩略图存储位置

  image_id    对应原图id 

 

    视频对应表images和thumbnails

video   

  _id            视频id

  _data        视频路径

videothumbnails

  _id            视频缩略图id

  _data        视频缩略图存储位置

  image_id  对应视频id (这个应该是VIDEO_ID) 

 

4  以获取视频的缩略图为例,具体步骤如下:

  1 获取视频的uri

  2 转换为String,得到视频id

  3 去videothumbnails表中找到视频缩略图路径

  4 根据路径得到图片


  缩略图 与源文件有一个 id是相关联的


 2013年7月2日15:35:19


   今天需要用到缩略图, 发现上面那个代码不清楚为什么会是一个空白,没图片,

 http://blog.csdn.net/akon_vm/article/details/7419274 

  这个链接可以获取到,但是要求最少2.2以上。

   再我测试的视频文件格式flv, 我在我手机没问题,但是模拟器好像不支持这个格式还是啥,会是一个null!

你可能感兴趣的:(android,String,image,null,存储)