2013-01-23 75 views
8

是否可以獲取視頻縮略圖PATH,而不是位圖對象本身?我知道方法android獲取視頻縮略圖PATH,而不是位圖

MediaStore.Images.Thumbnails.queryMiniThumbnail 

的,但因爲我用我自己的位圖緩存機制,我想有路徑視頻縮略圖,而不是位圖對象本身。此方法返回Bitmap對象,而不是路徑。 謝謝

回答

7

首先獲取視頻文件的URL,然後使用下面的查詢。

示例代碼:

private static final String[] VIDEOTHUMBNAIL_TABLE = new String[] { 
    Video.Media._ID, // 0 
    Video.Media.DATA, // 1 from android.provider.MediaStore.Video 
    }; 

Uri videoUri = MediaStore.Video.Thumbnails.getContentUri("external"); 

cursor c = cr.query(videoUri, VIDEOTHUMBNAIL_TABLE, where, 
      new String[] {filepath}, null); 

if ((c != null) && c.moveToFirst()) { 
    VideoThumbnailPath = c.getString(1); 
} 

VideoThumbnailPath,應該有視頻縮略圖路徑。希望能幫助到你。

+0

什麼 「其中」 參數(第3對c.query的調用參數)的值? – cubesoft

+0

Where String: Video.Thumbnails.VIDEO_ID +「In(select _id from video where _data =?)」; –

+0

工程就像一個魅力!謝謝! – cubesoft

1

獲取視頻縮略圖路徑從VIDEO_ID:

public static String getVideoThumbnail(Context context, int videoID) { 
     try { 
      String[] projection = { 
        MediaStore.Video.Thumbnails.DATA, 
      }; 
      ContentResolver cr = context.getContentResolver(); 
      Cursor cursor = cr.query(
        MediaStore.Video.Thumbnails.EXTERNAL_CONTENT_URI, 
        projection, 
        MediaStore.Video.Thumbnails.VIDEO_ID + "=?", 
        new String[] { String.valueOf(videoID) }, 
        null); 
      cursor.moveToFirst(); 
      return cursor.getString(0); 
     } catch (Exception e) { 
     } 
     return null; 
    }