ThumbnailUtilsを使って動画ファイルのサムネイルを作成する


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