How to get a video thumbnail track, not a bitmap

This question is actually asked and presumably answered here: android get video thumbnail PATH, not bitmap .

I have tried several times but cannot get it to work. I always return null. Any help on this?

Edit: Example code I'm using now:

public static String getVideoThumbnailPath(Context context,
        String filePath) {
    String thubmnailPath;
    String where = Video.Thumbnails.VIDEO_ID
            + " In ( select _id from video where _data =?)";
    final String[] VIDEO_THUMBNAIL_TABLE = new String[] { Video.Media._ID, // 0
            Video.Media.DATA, // 1
    };
    Uri videoUri = MediaStore.Video.Thumbnails.getContentUri("external");

    Cursor c = context.getContentResolver().query(videoUri,
            VIDEO_THUMBNAIL_TABLE, where, new String[] { filePath }, null);

    if ((c != null) && c.moveToFirst()) {
        thubmnailPath = c.getString(1);
        c.close();
        Log.i(TAG, "thumb path: " + thubmnailPath);
        return thubmnailPath;
    } else {
        c.close();
        Log.i(TAG, "thumb path is null");
        return null;
    }
}

      

+3


source to share


1 answer


First, you need to know the contents of the uri file. If you have a file path, this shows you how to get the contents of the uri.

public static String[] thumbColumns = { MediaStore.Video.Thumbnails.DATA };
public static String[] mediaColumns = { MediaStore.Video.Media._ID };

public static String getThumbnailPathForLocalFile(Activity context,
        Uri fileUri) {

    long fileId = getFileId(context, fileUri);

    MediaStore.Video.Thumbnails.getThumbnail(context.getContentResolver(),
            fileId, MediaStore.Video.Thumbnails.MICRO_KIND, null);

    Cursor thumbCursor = null;
    try {

        thumbCursor = context.managedQuery(
                MediaStore.Video.Thumbnails.EXTERNAL_CONTENT_URI,
                thumbColumns, MediaStore.Video.Thumbnails.VIDEO_ID + " = "
                        + fileId, null, null);

        if (thumbCursor.moveToFirst()) {
            String thumbPath = thumbCursor.getString(thumbCursor
                    .getColumnIndex(MediaStore.Video.Thumbnails.DATA));

            return thumbPath;
        }

    } finally {
    }

    return null;
}

public static long getFileId(Activity context, Uri fileUri) {

    Cursor cursor = context.managedQuery(fileUri, mediaColumns, null, null,
            null);

    if (cursor.moveToFirst()) {
        int columnIndex = cursor
                .getColumnIndexOrThrow(MediaStore.Video.Media._ID);
        int id = cursor.getInt(columnIndex);

        return id;
    }

    return 0;
}

      



Link: http://androidcodezs.blogspot.com/2013/10/android-thumbnail-from-video.html

+11


source







All Articles