Android:通過ThumbnailUtils類獲取視頻文件的縮略圖

jopen 9年前發布 | 60K 次閱讀 Android Android開發 移動開發

在視頻播放器上經常會看到,有很多的視頻縮略圖,本文講的就是通過ThumbnailUtils類獲取視頻文件的縮略圖;

運行截圖如下:
這里寫圖片描述

代碼如下:

MainActivity.java:

package com.vrinux.thumbnailutilsdemo;

import android.app.Activity; import android.graphics.Bitmap; import android.media.ThumbnailUtils; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; import android.widget.ImageView;

public class MainActivity extends Activity {

//定義一個ImageView對象imgObj;
private ImageView imgObj;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //獲取對象imgObj;
    imgObj = (ImageView) findViewById(R.id.imgid);

    //定義一個視頻文件路徑;
    String filePath = null;

    //視頻文件的名字;
    String filename = "video.3gp";

    //判斷SDCard是否掛載;由于Android版本的掛載路徑不盡相同,所以建議使用一下的方法判斷;
    if (Environment.getExternalStorageState().equals(
            Environment.MEDIA_MOUNTED)) {
        //獲取SDCard根的路徑
        String sdPath = Environment.getExternalStorageDirectory().getPath();

        //將SDCard根路徑和文件名組裝得到視頻文件的路徑;
        filePath = sdPath + "/" + filename;

        //調用下面定義的方法,獲得指定大小的視頻截圖;
        //最后的參數本人不太清楚是什么意思,只是這么用,其源碼并非開源;
        Bitmap bitmap = getVidioBitmap(filePath, 400, 400,
                MediaStore.Images.Thumbnails.MICRO_KIND);

        //將獲得的位圖用imgObj顯示;
        imgObj.setImageBitmap(bitmap);
    }

}

public Bitmap getVidioBitmap(String filePath, int width, int height,
        int kind) {
    //定義一個Bitmap對象bitmap;
    Bitmap bitmap = null;

    //ThumbnailUtils類的截取的圖片是保持原始比例的,但是本人發現顯示在ImageView控件上有時候有部分沒顯示出來;
    //調用ThumbnailUtils類的靜態方法createVideoThumbnail獲取視頻的截圖;
    bitmap = ThumbnailUtils.createVideoThumbnail(filePath, kind);

    //調用ThumbnailUtils類的靜態方法extractThumbnail將原圖片(即上方截取的圖片)轉化為指定大小;
    //最後一個參數的具體含義我也不太清楚,因為是閉源的;
    bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height,
            ThumbnailUtils.OPTIONS_RECYCLE_INPUT);

    //放回bitmap對象;
    return bitmap;
}

}</pre>
activity_main.xml:

<LinearLayout xmlns:android="

<ImageView
    android:id="@+id/imgid"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

</LinearLayout></pre>來自:http://blog.csdn.net/vrinux/article/details/44961617

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!