Android截取视频帧并转化为Bitmap示例
来源:互联网 发布:.uno域名 编辑:程序博客网 时间:2024/06/05 11:20
MainActivity如下:
package cn.testmediametadataretriever; import java.io.File; import java.io.FileOutputStream; import android.media.MediaMetadataRetriever; import android.os.Bundle; import android.os.Environment; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.Bitmap.CompressFormat; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; /** * Demo描述: * 利用MediaMetadataRetriever按照时间截取视频 * 并转换为Bitmap存放于SDCard * * 特别注意: * getFrameAtTime()方法第一个参数的单位是微秒 (us) * */ public class MainActivity extends Activity { private Button mButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); } private void init(){ mButton=(Button) findViewById(R.id.button); mButton.setOnClickListener(new ClickListenerImpl()); } private class ClickListenerImpl implements OnClickListener{ @Override public void onClick(View v) { switch (v.getId()) { case R.id.button:
getBitmapsFromVideo();
default: break; }
}
}
public void getBitmapsFromVideo() { String dataPath = Environment.getExternalStorageDirectory()+ "/testVideo.mp4"; MediaMetadataRetriever retriever = new MediaMetadataRetriever(); retriever.setDataSource(dataPath); // 取得视频的长度(单位为毫秒) String time = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION); // 取得视频的长度(单位为秒) int seconds = Integer.valueOf(time) / 1000; // 得到每一秒时刻的bitmap比如第一秒,第二秒 for (int i = 1; i <= seconds; i++) { Bitmap bitmap = retriever.getFrameAtTime(i*1000*1000,MediaMetadataRetriever.OPTION_CLOSEST_SYNC); String path = Environment.getExternalStorageDirectory()+ File.separator + i + ".jpg"; FileOutputStream fos = null; try { fos = new FileOutputStream(path); bitmap.compress(CompressFormat.JPEG, 80, fos); fos.close(); } catch (Exception e) { e.printStackTrace(); } } } }
————————————————————————————————————————————————————————————main.xml如下:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="获取视频的帧图片"
android:layout_centerInParent="true"
/>
</RelativeLayout>
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="获取视频的帧图片"
android:layout_centerInParent="true"
/>
</RelativeLayout>
0 0
- Android截取视频帧并转化为Bitmap示例
- Android截取视频帧并转化为Bitmap
- Android开发:对VA文件根据时间点截取关键帧并转化为Bitmap
- android 关于视频取某时间段的帧转化为bitmap后循环播出问题
- Android Drawable 转化为 Bitmap
- Android截屏幕实现,截取屏幕为bitmap,并保存进手机图库,activity之间传递bitmap对象
- Android图片 将Drawable转化为Bitmap
- Android中图片转化为bitmap
- Android将BitMap转化为圆形
- Android把drawable转化为bitmap
- Android 将View 转化为bitmap 图片
- 自定义属性reference 指向 Drawable 并转化为 Bitmap
- 图片(bitmap)转化为byte[],并上传到服务器
- 用HttpURLConnection下载图片并转化为Bitmap
- SQL将datetime转化为字符串并截取字符串
- bitmap转化为file
- Android Bitmap保存为.bmp格式,图像转化为黑白图片
- Android Bitmap保存为.bmp格式,图像转化为黑白图片
- JavaEE NetBeans HTTP Status 404 - Not Found
- 可添加注释的有序java properties扩展类
- Java FileInputStream和FileOutputStream
- 如何用Loadrunner监控Tomcat
- jQuery少用却使用的
- Android截取视频帧并转化为Bitmap示例
- 新blog启用
- Swift UIDatePikcer
- Eclipse使用Maven构建web项目详解
- wireshark 抓包分析 TCPIP协议的握手
- Android 图片处理(一)
- Sring自动注入Bean
- CSS3基础
- TypedArray和obtainStyledAttributes使用