【Android Tips】動画から指定した秒数のサムネイル画像を取得したい!①〜とりあえず取得
動画のサムネイルを、指定箇所で取得したい時ってありませんか?
サムネイル取得でおなじみのThumbnailUtilsだとそれが出来ない様なので、MediaMetadataRetrieverを使って実現してみたいと思います。
はじめまして。pencoです。今回は【リストに動画の一覧をサムネイルで表示したい!】ということで、やってみました。
こちらのサイトを参考にさせて頂きました。
http://blog.livedoor.jp/sen_ritsu/archives/51355758.html
ThumbnailUtilsを使ってサムネイルを取得すると、取得位置の指定は出来ないようなので、(大体真ん中あたりの秒数のサムネイルが取得されます)
今回はMediaMetadataRetrieverを使って、指定した秒数のサムネイルを取得します。
public Bitmap getCustomThumbnail(File path, long time){ Bitmap thumbnail = null; MediaMetadataRetriever retriever = new MediaMetadataRetriever(); retriever.setDataSource(path.getPath()); //秒単位で指定 thumbnail = retriever.getFrameAtTime(1000 * 1000 * time); //サムネイルを任意のサイズにリサイズ thumbnail = ThumbnailUtils.extractThumbnail(thumbnail, 640, 360); return thumbnail; }
画像のパスと、サムネイルのサイズ、取得したい秒数を指定して任意のサムネイルを取得します。
実際に動作させると、こんな感じ。

しかし、これ罠がありました。
実機でテストしてみると、端末ごとに取得される画像が違う!!
なぜだ!?と思い、いろいろこねくり回してみました。
それについては、また次回。。
コメントをどうぞ