обновить содержимое хранилища мультимедиа определенного видео

Я записал видео с помощью Mediarecorder, вставил его в медиастор, а затем обновил значения содержимого этого видео на следующем экране. Но это изменение ОПИСАНИЯ для всех видео в списке, я хочу изменить только текущее записанное видео. Вот код:

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

Как это исправить и как сделать это личной папкой для моего приложения?


person Codes12    schedule 17.06.2011    source источник


Ответы (1)


Где вы это делаете:

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

вы в основном просите его изменить все (и система делает именно то, что вы просили). Что вам нужно сделать, так это добавить файл с помощью медиа-сканера, как вы уже делаете, а затем запросить файл (я думаю, вы могли бы просто использовать DATE_ADDED и найдите все видео, добавленные после того, как вы отправили намерение), а затем используйте URI, полученный из запроса. to в вызове update (вместо base).

Дай мне знать, если это работает.

person Femi    schedule 17.06.2011