1.录制两种方法
(1)通过intent隐式跳转,打开相机进行录制,播放使用videoview但是videoview它不自带监听,需要从写一个类来继承videoview,重写暂停,播放方法。通过接口回调来监听它是暂停还是播放。
(2)通过MediaRecorder来进行视频录制,用SurfaceView来进行绘制,绘制的时候会开启一个线程,不会与主线程进行堵塞。
2.视频压缩
(1)通过ffmpeg多媒体框架编译器(它是用来编译我们的视频的),视频分为视频和音频,视频是用x264格式进行压缩,音频是用aac格式,在我们项目中用的时候我们需要配置ndk,通过静态代码块,静态加载so库,用native 修饰符修饰方法,在java中我们通过jni调用命令进行压缩。
jni的作用就是
它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)。从Java1.1开始,JNI标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。