这里仅仅是下载到本地相册的方法
mVideoPath = getIntent().getStringExtra(TCConstants.VIDEO_RECORD_VIDEPATH);
mCoverImagePath = getIntent().getStringExtra(TCConstants.VIDEO_RECORD_COVERPATH);
mVideoDuration = getIntent().getIntExtra(TCConstants.VIDEO_RECORD_DURATION, 0);
//下载
private void downloadRecord() {
File file = new File(mVideoPath);
if (file.exists()) {
try {
File newFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath()
+ File.separator + file.getName());
file.renameTo(newFile);
mVideoPath = newFile.getAbsolutePath();
ContentValues values = initCommonContentValues(newFile);
values.put(MediaStore.Video.VideoColumns.DATE_TAKEN, System.currentTimeMillis());
values.put(MediaStore.MediaColumns.MIME_TYPE, "video/mp4");
values.put(MediaStore.Video.VideoColumns.DURATION, mVideoDuration);//时长
this.getContentResolver().insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, values);
insertVideoThumb(newFile.getPath(), mCoverImagePath);
} catch (Exception e) {
e.printStackTrace();
}
finish();
}
}
private static ContentValues initCommonContentValues(File saveFile) {
ContentValues values = new ContentValues();
long currentTimeInSeconds = System.currentTimeMillis();
values.put(MediaStore.MediaColumns.TITLE, saveFile.getName());
values.put(MediaStore.MediaColumns.DISPLAY_NAME, saveFile.getName());
values.put(MediaStore.MediaColumns.DATE_MODIFIED, currentTimeInSeconds);
values.put(MediaStore.MediaColumns.DATE_ADDED, currentTimeInSeconds);
values.put(MediaStore.MediaColumns.DATA, saveFile.getAbsolutePath());
LogUtil.e("TAGD","saveFile.getAbsolutePath()"+saveFile.getAbsolutePath());
LogUtil.e("TAGD"," saveFile.getName()"+ saveFile.getName());
values.put(MediaStore.MediaColumns.SIZE, saveFile.length());
return values;
}
/**
* 插入视频缩略图
*
* @param videoPath
* @param coverPath
*/
private void insertVideoThumb(String videoPath, String coverPath) {
//以下是查询上面插入的数据库Video的id(用于绑定缩略图)
//根据路径查询
Cursor cursor = getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
new String[]{MediaStore.Video.Thumbnails._ID},//返回id列表
String.format("%s = ?", MediaStore.Video.Thumbnails.DATA), //根据路径查询数据库
new String[]{videoPath}, null);
if (cursor != null) {
if (cursor.moveToFirst()) {
String videoId = cursor.getString(cursor.getColumnIndex(MediaStore.Video.Thumbnails._ID));
//查询到了Video的id
ContentValues thumbValues = new ContentValues();
thumbValues.put(MediaStore.Video.Thumbnails.DATA, coverPath);//缩略图路径
thumbValues.put(MediaStore.Video.Thumbnails.VIDEO_ID, videoId);//video的id 用于绑定
//Video的kind一般为1
thumbValues.put(MediaStore.Video.Thumbnails.KIND,
MediaStore.Video.Thumbnails.MINI_KIND);
//只返回图片大小信息,不返回图片具体内容
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
Bitmap bitmap = BitmapFactory.decodeFile(coverPath, options);
if (bitmap != null) {
thumbValues.put(MediaStore.Video.Thumbnails.WIDTH, bitmap.getWidth());//缩略图宽度
thumbValues.put(MediaStore.Video.Thumbnails.HEIGHT, bitmap.getHeight());//缩略图高度
if (!bitmap.isRecycled()) {
bitmap.recycle();
}
}
this.getContentResolver().insert(
MediaStore.Video.Thumbnails.EXTERNAL_CONTENT_URI, //缩略图数据库
thumbValues);
}
cursor.close();
}
}