最近比较忙,一直都没有写博客了呢.本来一直在写3D开发OpenGL ES的,但是项目太紧,没有时间写.现在项目中要求了一个功能,是把一个3D的模型作为微信小视频去分享.那就涉及到一个屏幕录制.
就现在而言,对于安卓的屏幕录制主要有两种方法:
第一:利用系统5.0之后提供的屏幕录制API的MediaProjection去实现.实现的时候任何屏幕都可以去录制,除了添加窗口安全flag的以外.而且使用这个类是不需要root的.
第二:利用GLSurfaceView去捕捉图片,然后对图片压缩成视频.存储忽略怎么去从GLSurfaceView保存图片,这个比较简单不在这里详细说明.
对于从图片转出视频,需要用到一个第三方的开源库ffmpeg,但是对于这个库的编译是很复杂的,所以我在这里把这个库的编译简化,提取出适合安卓应用的库.主要分成两个jar包,包括javacpp.jar和javacv.jar.然后动态so库编译了armebi下的库.
对于捕获的地方,主要从sdcard去读取一个文件夹,对文件夹下的图片压缩成视频:
package com.luoxiang.image2video;
import android.os.Handler;
import android.os.Message;
import com.googlecode.javacv.FFmpegFrameRecorder;
import com.googlecode.javacv.FrameRecorder.Exception;
import com.googlecode.javacv.cpp