Android mediaRecorder框架简述(一)
下面是框架简图:
首先调用mediaRecorder.java中的方法比如start方法,会调用jni:
也就是调用android_media_recorder.cpp的start方法:
接着到mediaRecorder.cpp,mediaRecorder是由mediaplayerService创建的,而mediaRecoder.cpp和mediaplayerService是通过binder机制来进行进程间的通信的,这时client端就是通过操作服务端返回的imediaRecorder来对服务端进行控制的:
这里new mediaRecorderClient这是其实是创建了一个StagefrightRecorder:
其实我们在java层调用start就是调用了StagefrightRecorder中的strat方法,在这里我们可以看到根据传进来的mOutputFormat值(输出格式)会选择不同的编码类型的方法:
假如我们输出的是3gp格式,我们调用:startMPEG4Recording() 方法:
接着调用setupMPEG4Recording:
原文地址; http://blog.csdn.net/itachi85/article/details/8278362
Android mediaRecorder框架简述(一)相关推荐
- Android mediaRecorder框架简述(二)
这里有个setupVideiEncoder,看来这里应该是对视频编码的地方 根据不同的编码类型来设置不同的参数,这个方法代码有些多直截取部分代码: 来看看关键的一句,这里创建了OMXCodec 然后把 ...
- [Android][MediaRecorder] Android MediaRecorder框架简洁梳理
Android MediaRecorder框架简洁梳理 一.MediaRecorder整体架构 1.1 MediaRecorder录制数据流框架 1.2 PersistentSurface及Graph ...
- Android MediaRecorder架构详解
1. 简介 在android中录制音频有两种方式,MediaRecorder和AudioRecord.两者的区别如下: (1) MediaRecorder 简单方便,不需要理会中间录制过程,结束录制后 ...
- Android数据库框架-----ORMLite 的基本用法
ORMLite 是一款非要流行的Android平台上的数据库框架,性能优秀,代码简洁: 简述: 优点: 1.轻量级:2.使用简单,易上手:3.封装完善:4.文档全面. 缺点:1.基于反射,效率较低(本 ...
- Android数据库框架总结
本文转自:http://blog.csdn.net/da_caoyuan/article/details/61414626 一:OrmLite 简述: 优点: 1.轻量级:2.使用简单,易上手:3.封 ...
- Android音频框架之二 用户录音启动流程源码走读
前言 此篇是对<Android音频框架之一 详解audioPolicy流程及HAL驱动加载>的延续,此系列博文是记录在Android7.1系统即以后版本实现 内录音功能. 当用户使用 Au ...
- Android Binder框架实现之bindService详解
Android Binder框架实现之bindService详解 Android Binder框架实现目录: Android Binder框架实现之Binder的设计思想 Android Bi ...
- android版本更新框架、新闻客户端、音乐播放器、自定义View、Github客户端、指南针等源码...
Android精选源码 XUpdate 一个轻量级.高可用性的Android版本更新框架 Android一个可定制的圆形进度条 Android自定义View分享 打钩动画源码 android音乐文件播 ...
- Android View框架的measure机制
Android中View框架的工作机制中,主要有三个过程: 1.View树的测量(measure)Android View框架的measure机制 http://www.cnblogs.com/xyh ...
最新文章
- 如何更改微调器的文字大小和文字颜色?
- datagrid数据表格当数据为0的时候页面不显示数据
- 为什么 HashMap 的加载因子是0.75?
- ArcGIS.Server.9.3和ArcGIS API for JavaScript实现Identify功能(六)
- javaScript变量、作用域链
- Java EE 6示例– Galleria –第3部分
- mysql主从同步开启后的iptables的设定问题
- codevs——2822 爱在心中
- 怎样快速将Word转长图
- cydia无法安装卸载插件_简单 用文件管理器干掉Cydia顽固插件源
- Boost基础篇——安装
- 从零开始一套完整的短视频运营方案,想做抖音快手短视频的速来观摩。
- Eclipse中没有Servers或Dynamic Web Project的解决方案
- xay loves or
- Pro/E产品设计之绘制齿轮的步骤
- Python __file__ 详解
- 常用传感器讲解五--声音传感器-(KY-037)
- H5怎么禁用长按复制的功能?
- 魔法少女小Scarlet
- C语言第十九讲——函数(2)
热门文章
- 服务器意外重启导致storm报错的问题处理
- Json格式转化为string格式
- JS基础之undefined与null的区别
- W: 无法下载 http://ppa.launchpad.net/fcitx-team/nightly/ubuntu/dists/jessie/main/binary-amd64/Packages
- 吴恩达 coursera ML 第十二课总结+作业答案
- vivado实现基本D触发器
- 系列笔记 | 深度学习连载(4):优化技巧(上)
- VTK修炼之道57:图形基本操作进阶_点云配准技术(LandMark标记点算法和坐标系显示方法)
- 用Schema来决定CSV文件的字段类型
- Delphi的Socket编程要分几步?