【转】开源视频录制库LandscapeVideoCamera
非常强大的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
【转】开源视频录制库LandscapeVideoCamera的更多相关文章
- 嵌入式Linux下MP4视频录制库MP4V2移植和简单介绍
**************************************************************************************************** ...
- 59.Android开源项目及库 (转)
转载 : https://github.com/Tim9Liu9/TimLiu-Android?hmsr=toutiao.io&utm_medium=toutiao.io&utm_so ...
- Android 开源项目及库汇总(2)
Android 开源项目及库汇总(2) ListenToCode 2.7 2018.10.10 15:43 字数 8527 阅读 1001评论 0喜欢 29 地图 百度地图– Android百度地图 ...
- android 视频录制 混淆打包 之native层 异常的解决
原文地址:http://www.cnblogs.com/linguanh/ (滑至文章末,直接看解决方法) 问题起因: 前5天,因为项目里面有个类似 仿微信 视频录制的功能, 先是上网找了个 开 ...
- iOS、mac开源项目及库汇总
原文地址:http://blog.csdn.net/qq_26359763/article/details/51076499 iOS每日一记------------之 中级完美大整理 iOS.m ...
- Android开源项目及库搜集
TimLiu-Android 自己总结的Android开源项目及库. github排名 https://github.com/trending,github搜索:https://github.com/ ...
- android视频录制、另一部手机实时观看方案
最近调研android视频录制.另一部手机实时观看,大致有以下几种思路. 1. android手机充当服务器,使用NanoHTTPD充当服务器,另一部手机或者pc通过输入http://手机的ip:80 ...
- 小程序升级实时音视频录制及播放能力,开放 Wi-Fi、NFC(HCE) 等硬件连接功能
“ 小程序升级实时音视频录制及播放能力,开放 Wi-Fi.NFC(HCE) 等硬件连接功能.同时提供按需加载.自定义组件和更多访问层级等新特性,增强了第三方平台的能力,以满足日趋丰富的业务需求.” 0 ...
- Fms3和Flex打造在线视频录制和回放
本博推荐文章快速导航: Sql Server2005 Transact-SQL 新兵器学习MCAD学习 代码阅读总结 ASP.NET状态管理 DB(数据库)WAPWinFormFlex,Fms aie ...
随机推荐
- svn配置及基本使用
svn软件下载地址http://subversion.apache.org/packages.html在安装TortoiseSVN时安装客户端和服务端 下以svn在windows下使用为例,linux ...
- Appium+python自动化29-toast消息(亲测 ok)
本篇转自博客:上海-悠悠 前言 appium1.5以后的版本才支持toast定位,并且 'automationName'得设置为'Uiautomator2',才能捕获到. 一. Supported P ...
- Annotation之二:@Inherited注解继承情况
@Inherited annotation类型是被标注过的class的子类所继承.类并不从它所实现的接口继承annotation,方法并不从它所重载的方法继承annotation. 子类中能否继承注解 ...
- 杂项-公司:星巴克百科-un
ylbtech-杂项-公司:星巴克百科 星巴克(Starbucks)是美国一家连锁咖啡公司的名称,1971年成立,是全球最大的咖啡连锁店,其总部坐落美国华盛顿州西雅图市.星巴克旗下零售产品包括30多款 ...
- thinkphp中的session的使用和理解!
session的作用:session可以长时间的保存数据,不丢失. session的常用于: 1.登录,保存登录信息 2.保存购物车信息 3.保存验证码信息 定义session常量 define('W ...
- springboot成神之——mybatis和mybatis-generator
项目结构 依赖 generator配置文件 properties配置 生成文件 使用Example 本文讲解如何在spring-boot中使用mybatis和mybatis-generator自动生成 ...
- MFC 文件I/O和串行化
1.枚举所有文件夹(递归) void EnumerateFolders () { WIN32_FIND_DATA fd; HANDLE hFind = ::FindFirstFile (_T (&qu ...
- Setting up logs in NetBackup
For a given issue, it may be necessary to gather multiple logs. This MUST cover the time the issue ...
- Java面向对象-对象的多态性
Java面向对象-对象的多态性 Java中的多态性表现: 1,方法的重载和重写(覆盖): 2,可以用父类的引用指向子类的具体实现,而且可以随时更换为其他子类的具体实现: 我们先搞个父类Animal: ...
- PHP网站
1.NetBeans 解决PHP调试问题:https://netbeans.org/ 支持PHP调试的版本 2. http://document.thinkphp.cn/manual_3_2.html ...