Android で、動画の1コマ(1フレーム)の画像抽出

Android で、動画の1コマ(1フレーム)の画像を簡単に抽出するなら、MediaMetadataRetriever を使う。

神経質に、どの1コマを取るべきかなど、あまり拘らない方法であり動画のサムネイルを作りたい場合に
安易な方法であろう。

ImageView imageview = (ImageView)findViewById(R.id.imageView1);

Movie ファイルのパスを適当に持ってくる。
String path = System.getenv("EXTERNAL_STORAGE") + "/myapl/sample.mp4";

MediaMetadataRetriever mmr = new MediaMetadataRetriever();
mmr.setDataSource(path);



引数無しで呼び出すと勝手に表示に適当な最初のフレームを取ってくる。
つまり動画が、最初の数秒間真っ暗で、どのくらいの後の時間を指定して
取ってくるか迷うなら、引数無しを使った方が良いみたい。


Bitmap bitmap = mmr.getFrameAtTime();

秒単位で指定するなら、、次のように取得

Bitmap bitmap = mmr.getFrameAtTime(time * 1000 * 1000, MediaMetadataRetriever.OPTION_CLOSEST_SYNC );

取得した Bitmap を表示に使用する。
imageview.setImageBitmap(bitmap);