MediaRecorder官方文档导读
来源:互联网 发布:唯品会类似淘宝客 编辑:程序博客网 时间:2024/06/05 13:35
无论什么语言,官方文档和源码是最好的资料,一如既往的,先看官方文档,之后看源码。如题,主要看MediaRecorder。还是翻译和自己理解的方式呈现,如果有不对之处,还望指出。
- MediaRecorder
- 嵌套类
- MediaRecorderAudioEncoder
- MediaRecorderAudioSource
- MediaRecorderVideoEncoder
- MediaRecorderVideoSource
- MediaRecorderOutputFormat
- 方法
- 案例
- 嵌套类
MediaRecorder
这个类主要用来做多媒体录音和录视频的
MeidaRecord的运行流程图如下:
A common case of using MediaRecorder to record audio works as follows:
使用MediaRecorder录音的步骤如下:
MediaRecorder recorder = new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); recorder.setOutputFile(PATH_NAME); recorder.prepare(); recorder.start(); // Recording is now started ... recorder.stop(); recorder.reset(); // You can reuse the object by going back to setAudioSource() step recorder.release(); // Now the object cannot be reused
可以通过setOnInfoListener(OnInfoListener)或者setErrorListener(OnErrorListener)来获取各自回调的信息监听。
语法:
嵌套类
MediaRecorder.AudioEncoder
大家都知道在录音的时候都要调用setAudioEncoder()方法,这个方法里面总有不同的参数,这个类就是参数的值,这里说一下各个不同值的区别:
- default:默认值
- AAC:高级音频编码,苹果用的就是这种音频格式,简单说下优缺点:
- 优点:相对于mp3,AAC格式的音质更佳,文件更小。
- 不足:AAC属于有损压缩的格式,与时下流行的APE、FLAC等无损格式相比音质存在”本质上”的差距。加之,传输速度更快的USB3.0和16G以上大容量MP3正在加速普及,也使得AAC头上”小巧”的光环不复存在。
- HE_AAC:HE-AAC混合了AAC与SBR技术
- AAC_ELD: 低延时的AAC音频编解码器
- AMR_NB:编码的是无视频纯声音3gp文件就是amr,他的文件比AAC的小,他的音乐效果没ACC的好
- AMR_WB:VMR-WB 是新型可变速率多模式宽带语音编解码器,专为无线 CDMA 2000标准而设计,目的在于在 50 至 7000 HZ 的频带上进行语音编码,采样率为 16 KHZ。VMR-WB 基于 3GPP AMR-WB (G722.2) 编解码器,在每秒速率12.65 Kbit 上可实现互操作。
- VORBIS:Vorbis是一种新的音频压缩格式,类似于MP3等现有的音乐格式。但有一点不同的是,它是完全免费、开放和没有专利限制的。OGG Vorbis有一个很出众的特点,就是支持多声道,随着它的流行,以后用随身听来听DTS编码的多声道作品将不会是梦想。
总结:开发首选AAC就行了,如果录音被抢占了释放掉或者选default就不会出现这种问题。
MediaRecorder.AudioSource
这个类对应setAudioSource(int)
方法,主要用来设置音频源; MediaRecorder.AudioSource音频参数说明如下:
- MediaRecorder.AudioSource.CAMCORDER 设定录音来源于同方向的相机麦克风相同,若相机无内置相机或无法识别,则使用预设的麦克风
- MediaRecorder.AudioSource.DEFAULT 默认音频源
- MediaRecorder.AudioSource.MIC 设定录音来源为主麦克风。
- MediaRecorder.AudioSource.VOICE_CALL设定录音来源为语音拨出的语音与对方说话的声音
- MediaRecorder.AudioSource.VOICE_COMMUNICATION 摄像头旁边的麦克风
- MediaRecorder.AudioSource.VOICE_DOWNLINK 下行声音
- MediaRecorder.AudioSource.VOICE_RECOGNITION 语音识别
- MediaRecorder.AudioSource.VOICE_UPLINK 上行声音
MediaRecorder.VideoEncoder
通过setVideoEncoder(int)来设置视频编码格式。
1. default:默认编码
2. H263:H.263 多用于视频传输,其优点是压缩后体积小,占用带宽少;
3. MPEG_4_SP:码率低代表它无需高码率即可有很好的视频效果,H264就更好了
4. . H264,也是用于网络视频传输,优点也和H263差不多;再是H264会比前两者更优秀一点,不过一般用在标清或者高清压缩比较多。
5. VP8: 据说比H264优秀。
6. HEVC:一种新的视频压缩标准。可以替代H.264/ AVC编码标准。它将在H.264标准2至4倍的复杂度基础上,将压缩效率提升一倍以上。
当然这一部分稍微了解就行,这里大部分注解都是参考网上的,毕竟不是专门做音视频这一块的,所以没有深入研究,知道什么情况下具体用哪一个就行了。纯属个人浅见。
MediaRecorder.VideoSource
通过setVideoSource(int)方法,设置视频的来源。
- CAMERA: 视频数据来源摄像头
- DEFAULT : 系统默认
- SURFACE:视频数据来源于Surface
这部分也很简单,根据具体情况设置不同的数据源,不多做讲解。
MediaRecorder.OutputFormat
通过setOutputFormat(int)方法来控制视频输出的格式:同理列举下各个参数的说明:
- AAC_ADTS:ADTS的全称是Audio Data Transport Stream。是AAC音频的传输流格式。是AAC的一种非常常见的传输格式,
- AMR_NB:编码的是无视频纯声音3gp文件就是amr,他的文件比AAC的小,他的音乐效果没ACC的好
- AMR_WB:VMR-WB 是新型可变速率多模式宽带语音编解码器,专为无线 CDMA 2000标准而设计,目的在于在 50 至 7000 HZ 的频带上进行语音编码,采样率为 16 KHZ。VMR-WB 基于 3GPP AMR-WB (G722.2) 编解码器,在每秒速率12.65 Kbit 上可实现互操作。
- DEFAULT:默认输出
- MPEG_4:这将指定录制的文件为mpeg-4格式,可以保护Audio和Video
- RAW_AMR:录制原始文件,这只支持音频录制,同时要求音频编码为AMR_NB
- THREE_GPP:录制后文件是一个3gp文件,支持音频和视频录制
- WEBM: 编码为VP8/VORBIS的输出格式。
输出格式,大同小异,这里也没有做特别详细的讲解,将一下基本用法就可以了。一般情况下使用输出格式为MPEG_4的即可。
方法:
案例:
源码地址:CameraVideoRecord
- MediaRecorder官方文档导读
- Android 官方文档导读(Introduction)
- Android 官方文档导读(App Fundamentals)
- 文档导读
- 文档导读
- GPP介绍文档导读
- ios文档导读
- Hyperopt中文文档导读
- 3GPP介绍文档导读
- jmeter中文文档之导读
- 官方文档
- 官方文档
- MediaRecorder
- MediaRecorder
- MediaRecorder
- MediaRecorder
- android sdk 文档导读之前传:初涉
- android sdk 文档导读之前传:初涉
- 第二章--第三节 成本函数和损失函数推导过程
- Sql Line操作使用Hbase
- 逆向工具(待研究)
- splay 学习笔记
- 机器学习教程 之 SKlearn 中 PCA 算法的运用:人脸识别实例
- MediaRecorder官方文档导读
- seagull安装步骤
- Android Studio 使用 System.loadLibrary()的一些问题
- pytorch版的bilstm+crf实现sequence label
- C# 中绑定数据到datagridviewcomboboxcolumn
- java list随机取值
- 七扭八歪解faster rcnn(keras版)(二)
- 小米首次召开IoT开发者大会 抖出了这19条干货!
- 赠票 | 小饭桌全球青年创业者大会下周举行 罗杰斯张颖参加