未引用JNI版本----MediaMetadataRetriever获取视频缩略图(真机4.0测试通过)

本文详细介绍了在不引用JNI版本的情况下,如何使用MediaMetadataRetriever类在Android 4.0及以上系统中成功获取视频缩略图的实践经验,适合开发者参考。
摘要由CSDN通过智能技术生成

package com.example.thumanaildemo5;

import java.io.File;
import java.util.HashMap;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.graphics.Bitmap;
import android.media.MediaMetadataRetriever;
import android.media.ThumbnailUtils;
import android.os.Build;
import android.os.Bundle;
import android.provider.MediaStore;
import android.provider.MediaStore.Images;
import android.widget.ImageView;

public class MainActivity extends Activity {
	ImageView thumbnails;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		File file = new File("/sdcard/mp4/china.mp4");
		thumbnails =(ImageView)findViewById(R.id.imageView1); 
        Bitmap bitmap = createVideoThumbnail(file.getAbsolutePath(),50,50);
        if(bitmap.toString().isEmpty())
        	System.out.println("bitmap is null");
        else{
        	thumbnails.setImageBitmap(bitmap);
        	
        	
        }
          
	}
	@SuppressLint("NewApi")
	private Bitmap createVideoThumbnail(String url, int width, int height) {
		  Bitmap bitmap = null;
		  MediaMetadataRetriever retriever = new MediaMetadataRetriever();
		  int kind = MediaStore.Video.Thumbnails.MINI_KIND;
		  try {
		   if (Build.VERSION.SDK_INT >= 14) {
		    retriever.setDataSource(url, new HashMap<String, String>());
		   } else {
		    retriever.setDataSource(url);
		   }
		   bitmap = retriever.getFrameAtTime();
		  } catch (IllegalArgumentException ex) {
		   // Assume this is a corrupt video file
		  } catch (RuntimeException ex) {
		   // Assume this is a corrupt video file.
		  } finally {
		   try {
		    retriever.release();
		   } catch (RuntimeException ex) {
		    // Ignore failures while cleaning up.
		   }
		  }
		  if (kind == Images.Thumbnails.MICRO_KIND && bitmap != null) {
		   bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height,
		     ThumbnailUtils.OPTIONS_RECYCLE_INPUT);
		  }
		  return bitmap;
		 }
}


参考资料: Android 获取网络视频缩略图【完美兼容各版本】



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值