繁体   English   中英

更新特定视频的媒体库内容

[英]update mediastore contenvalues of specific video

我使用Mediarecorder捕获了一个视频,将其插入到mediastore中,然后在下一个屏幕中更新了该视频的内容值。 但是它改变了列表中所有视频的DESCRIPTION,我只想更改当前录制的视频。 这是一些代码:

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));

如何解决此问题以及如何使其成为我的应用程序的专用文件夹?

在哪里执行此操作:

contentResolver.update(base, values,null,null);

您基本上是在要求它更改所有内容(系统正在按照您的要求进行操作)。 您需要做的就是使用媒体扫描器添加文件,然后再查询文件(我想您可以使用DATE_ADDED列并搜索在发送意图之前添加的所有视频) ),然后在update调用中使用从查询中获得的URI(而不是base )。

让我知道是否可行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM