ThumbnailUtilsクラスを使えば簡単に動画ファイルのサムネイルを作成することができます。
詳細は続きからご覧下さい。
※2011/02/22 記事を加筆・修正しました!
createVideoThumbnailメソッド
createVideoThumbnailメソッドで動画ファイルのサムネイルを作成します。
メソッドの定義は以下のようになっています。
Bitmap createVideoThumbnail(String filePath, int kind)
- filePath : 動画ファイルのパス
- kind : 生成するサムネイルのサイズ
filePathで指定した動画ファイルのサムネイルをBitmapで返します。
kindにはサムネイルのサイズを以下に示す定数から指定することができます。
MediaStore.Images.Thumbnails.MINI_KIND | 512×384 |
MediaStore.Images.Thumbnails.MICRO_KIND | 96×96 |
extractThumbnailメソッド
extractThumbnailメソッドではsourceで指定したBitmapからwidth, heightの任意のサイズで新たにBitmapを作成します。createVideoThumbnailで取得したBitmapをextractThumbnailを用いて任意のサイズにリサイズするというような使い方をします。
メソッドの定義は以下のとおりです。
Bitmap extractThumbnail(Bitmap source, int width, int height)
Bitmap extractThumbnail(Bitmap source, int width, int height, int options)
- source : 元となるBitmap
- width : 新たに生成するBitmapの幅
- height : 新たに生成するBitmapの高さ
- options : recycleの有無
optionsに指定できる定数としてOPTIONS_RECYCLE_INPUTが用意されています。
public static final int OPTIONS_RECYCLE_INPUT
OPTIONS_RECYCLE_INPUTを指定しておくことで、メモリ不足時にsourceで指定したBitmapのメモリ領域を自動的に解放することができます。
サンプルコード
サンプルコードでは2つのImageViewを用意し、それぞれcreateVideoThumbnailメソッドで作成したサムネイルとextractThumbnailメソッドで作成(リサイズ)したサムネイルを表示しています。
// ThumbnailUtilsインスタンス作成 ThumbnailUtils tu = new ThumbnailUtils(); // 表示用ImageView ImageView iv, iv2; iv = (ImageView) findViewById(R.id.imageView1); iv2 = (ImageView) findViewById(R.id.imageView2); // sample.3gpのサムネイルを作成して表示する Bitmap bitmap1 = tu.createVideoThumbnail("/sdcard/sample.3gp", Thumbnails.MINI_KIND); iv.setImageBitmap(bitmap1); // sample.3gpのサムネイルを64x64にリサイズして表示する Bitmap bitmap2 = tu.extractThumbnail(bitmap1, 64, 64); iv2.setImageBitmap(bitmap2);