MediaRecorder和AudioRecord的区别和联系
来源:互联网 发布:js 3D图形插件 编辑:程序博客网 时间:2024/05/16 00:53
MediaRecorder和AudioRecord都可以录制音频,区别是MediaRecorder录制的音频文件是经过压缩后的,需要设置编码器。并且录制的音频文件可以用系统自带的Music播放器播放。
而AudioRecord录制的是PCM格式的音频文件,需要用AudioTrack来播放,AudioTrack更接近底层。
在用MediaRecorder进行录制音视频时,最终还是会创建AudioRecord用来与AudioFlinger进行交互。
C++层MediaRecorder创建AudioRecord类的代码位于AudioSource类构造函数中,代码如下:
可参考:
AudioRecord录音framework层的处理流程参考:录音相关的处理流程
MediaRecorder的用法参考:Android音视频录制类MediaRecorder用法举例
AudioRecord实现录音的例子可参考:利用AudioRecord类实现自己的音频录制程序
MediaRecorder和AudioRecord的录制音频的关系,与MediaPlayer和AudioTrack的播放音频的关系类似。
参考:MediaPlayer和AudioTrack播放Audio的区别与联系
而AudioRecord录制的是PCM格式的音频文件,需要用AudioTrack来播放,AudioTrack更接近底层。
在用MediaRecorder进行录制音视频时,最终还是会创建AudioRecord用来与AudioFlinger进行交互。
C++层MediaRecorder创建AudioRecord类的代码位于AudioSource类构造函数中,代码如下:
mRecord = new AudioRecord( inputSource, sampleRate, AudioSystem::PCM_16_BIT, channels > 1? AudioSystem::CHANNEL_IN_STEREO: AudioSystem::CHANNEL_IN_MONO, 16 * kMaxBufferSize / sizeof(int16_t), /* Enable ping-pong buffers */ flags);AudioSource对象的创建位于StagefrightRecorder::createAudioSource()函数中,而createAudioSource函数又是在StagefrightRecorder类开始录音或录像时被创建的。
可参考:
AudioRecord录音framework层的处理流程参考:录音相关的处理流程
MediaRecorder的用法参考:Android音视频录制类MediaRecorder用法举例
AudioRecord实现录音的例子可参考:利用AudioRecord类实现自己的音频录制程序
MediaRecorder和AudioRecord的录制音频的关系,与MediaPlayer和AudioTrack的播放音频的关系类似。
参考:MediaPlayer和AudioTrack播放Audio的区别与联系
- MediaRecorder和AudioRecord的区别和联系
- MediaRecorder和AudioRecord的区别和联系
- MediaRecorder和AudioRecord的区别和联系
- 浅谈Android下的AudioRecord 和 Mediarecorder区别
- & 和 &&的区别和联系
- Android Multimedia实战(六)音频 MediaRecorder和AudioRecord录音与MediaPlayer和AudioTrack播放
- Android两种录音方式MediaRecorder和AudioRecord实现了实时获取音量大小
- MOLAP_ROLAP_HOLAP的区别和联系
- &&和&的联系与区别
- 数据仓库和数据库的区别和联系
- ref和out的区别和联系
- 堆和栈的联系和区别
- HashMap 和 Hashtable 的区别和联系
- 堆和栈的区别和联系
- 文本文件和二进制文件的区别和联系
- fflush和fsync的联系和区别
- dll和exe的区别和联系
- UNICODE和_UNICODE的区别和联系
- openfire(服务器)spark(客户端)添加好友bug
- 使用J2SE API读取Properties文件的六种方法
- Log4j学习一
- XML CDATA 以及转意字符
- UVa 10790 - How Many Points of Intersection?
- MediaRecorder和AudioRecord的区别和联系
- 数据分析
- Listctrl 样式和LV_ITEM和LV_COLUMN
- 异常类中throw单独存在的特点
- HDU 1106 排序
- django 配置mysql错误:Error was: No module named mysql.base
- 3250灵魂附体?诺基亚PureView概念机809
- 字符串和字符比较浅析测试(源码摘自microsoft help)
- ReadFile