我使用 Mediarecorder 捕获了一个视频,将其插入到 mediastore,然后在下一个屏幕中更新了该视频的内容值。但它改变了列表中所有视频的描述,我只想改变当前录制的视频。下面是一些代码:
ContentValues values = new ContentValues(1);
//long current = System.currentTimeMillis();
//values.put(MediaStore.Video.Media.DATE_ADDED, (int) (current / 1000));
//values.put(MediaStore.Video.Media.MIME_TYPE, "video/mp4");
values.put(MediaStore.Video.Media.DESCRIPTION, edtext.getText().toString());
//values.put(MediaStore.Video.Media.DATA, videoFile.getAbsolutePath());
ContentResolver contentResolver = getContentResolver();
Uri base = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
contentResolver.update(base, values,null,null);
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, base));
我在列表视图中使用它:
cursor = managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
mediaColumns, null, null, null);
ArrayList<VideoViewInfo> videoRows = new ArrayList<VideoViewInfo>();
if (cursor.moveToFirst()) {
do {
VideoViewInfo newVVI = new VideoViewInfo();
int id = cursor.getInt(cursor
.getColumnIndex(MediaStore.Video.Media._ID));
Cursor thumbCursor = managedQuery(
MediaStore.Video.Thumbnails.EXTERNAL_CONTENT_URI,
thumbColumns, MediaStore.Video.Thumbnails.VIDEO_ID
+ "=" + id, null, null);
if (thumbCursor.moveToFirst()) {
newVVI.thumbPath = thumbCursor.getString(thumbCursor
.getColumnIndex(MediaStore.Video.Thumbnails.DATA));
Log.v(QUEUE_LOG, "Thumb " + newVVI.thumbPath);
}
newVVI.filePath = cursor.getString(cursor
.getColumnIndexOrThrow(MediaStore.Video.Media.DATA));
newVVI.caption = cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Video.Media.DESCRIPTION));
如何解决此问题以及如何将其设为我的应用程序的私人文件夹?