非常强大的android 视频录制库,可以选择视频尺寸以及视频质量,只允许横屏录制。

使用Android自带的Camera应用可以录制视频,只需发送MediaStore.ACTION_VIDEO_CAPTURE的intent即可,但是有一些缺陷:

内置应用intent的视频质量参数只允许为0和1 分别代表最低质量和最高质量,这个参数是一个extra 参数:MediaStore.EXTRA_VIDEO_QUALITY

在指定了文件名的情况下,内置应用intent不会返回录制完视频的URI

内置应用intent不关心用户录制的视频是横屏还是竖屏的。

截图

LandscapeVideoCamera的特点

LandscapeVideoCamera提供了完整的可复用的自定义camera,有如下特点:

(1)强制用户横屏录制(当为竖屏的时候是不能录制的)

(2)允许指定录制视频的文件名,当然也支持自动生成文件名。

(3)允许改变如下设置:

分辨率

码率

视频文件最大占用空间

视频录制时间

使用

将LandscapeVideoCamera库添加进你的项目中

在manifest中添加VideoCaptureActivity :

 <activity
android:name="com.jmolsmobile.landscapevideocapture.VideoCaptureActivity"
android:screenOrientation="sensor" >
</activity>

在manifest中添加如下权限:

 <uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 

设置录制参数,创建CaptureConfiguration对象,根据需要选择合适的构造方法,有如下构造方法:

 Capture configuration = CaptureConfiguration(CaptureResolution resolution, CaptureQuality quality);
Capture configuration = CaptureConfiguration(CaptureResolution resolution, CaptureQuality quality, int maxDurationSecs, int maxFilesizeMb);
Capture configuration = CaptureConfiguration(int videoWidth, int videoHeight, int bitrate);
Capture configuration = CaptureConfiguration(int videoWidth, int videoHeight, int bitrate, int maxDurationSecs, int maxFilesizeMb);
 

如果没有设置CaptureConfiguration 则会使用默认的设置。

用 startActivityForResult调用VideoCaptureActivity,CaptureConfiguration 作为parcelable类型参数EXTRA_CAPTURE_CONFIGURATION传递,文件名作为String类型参数 EXTRA_OUTPUT_FILENAME传递。

 final Intent intent = new Intent(getActivity(), VideoCaptureActivity.class);
intent.putExtra(VideoCaptureActivity.EXTRA_CAPTURE_CONFIGURATION, config);
intent.putExtra(VideoCaptureActivity.EXTRA_OUTPUT_FILENAME, filename);
startActivityForResult(intent, RESULT_CODE);
 

检查resultcode (RESULT_OK, RESULT_CANCELLED或者VideoCaptureActivity.RESULT_ERROR) ,如果成功则从intent extra 的EXTRA_OUTPUT_FILENAME中得到文件名。

项目地址:http://jcodecraeer.com/a/opensource/2014/1213/2156.html

最新文章

  1. [转]mysql在windows下支持表名大小写,lower_case_table_names
  2. [MetaHook] Find a function signature
  3. iOS instancetype or id ?
  4. 使用 IL 实现类型转换
  5. angular 和jq 的AJAX的请求区别
  6. Python学习总结17:exec和eval执行求值字符串
  7. .run文件安装
  8. 【go】脑补框架 Express beego tornado Flux reFlux React jsx jpg-ios出品
  9. SystemParametersInfo
  10. JS扩展方法
  11. C 语言中的变量为什么不能以数字打头
  12. 工程实践:给函数取一个&quot;好&quot;的名字
  13. MYSQL中文乱码以及character_set_database属性修改
  14. Visual Studio 2019 double clicking project(custom behavior)
  15. 【NOI2008】志愿者招募
  16. buildroot构建项目(四)--- u-boot 2017.11 适配开发板修改 2 ---- 系统启动初始化之一
  17. hibernate中3个重要的类 Configuration SessionFactory Session
  18. class字节码结构(三)(字段集合的结构)
  19. SqlServer 如何知道是否发生了索引碎片
  20. tomcat7-maven-plugin 端口

热门文章

  1. mysql事务隔离级别测试
  2. mysql实战优化之二:limit优化(大表翻页查询时) sql优化
  3. 1084 Broken Keyboard
  4. java 最差实践
  5. Java面试(二)
  6. 双杀 0day 漏洞(CVE-2018-8174)复现
  7. 使用原生js创建自定义标签
  8. NetBeans配置Xdebug 远程调试PHP
  9. pandas索引操作
  10. 使用ReentrantReadWriteLock类