2013-01-23 7 views
8

ビットマップオブジェクト自体ではなく、ビデオサムネイルPATHを取得できますか?私はこの方法android get video thumbnail PATH、ビットマップではない

MediaStore.Images.Thumbnails.queryMiniThumbnail 

の承知しているが、私は私自身のビットマップキャッシュメカニズムを使用するので、私はビデオのサムネイルではなく、Bitmapオブジェクトそのものへのパスを持っていると思います。このメソッドは、パスではなく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

「どこで」パラメータ(c.queryの呼び出しの3番目のパラメータ)の値は何ですか? – cubesoft

+0

ここで文字列: Video.Thumbnails.VIDEO_ID + "In(ビデオから_idを選択_id =?)"; –

+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; 
    } 
関連する問題