aac mediarecorder录制_音视频学习系列第(五)篇---MediaRecorder的使用

什么是MediaRecorder

MediaRecorder是安卓提供的一个用于音视频采集的类

在前几篇文章中,我们已经介绍了如何进行音频和视频的采集,即通过AudioRecord采集音频,通过Camera来采集视频

那么我们还为什么要介绍MediaRecorder了

前几篇文章介绍的音视频采集,采集的都是原始数据,对于音频来说是pcm数据,对于视频来说是YUV数据,camera中获取的是NV21,camera2获取的是YUV_420_888

对于原始数据还需要进行编码和封装,才能使用

为了方便,google提供了MediaRecorder这个类,通过它会自动将原始数据进行编码和封装

MediaRecorder的优缺点

优点

使用方便,得到就是编码和封装好的音视频文件,可以直接使用

缺点

无法获取原始数据,从而无法原始数据添加一些自己的处理

音频录制

1.开始录音

从上到下依次是(注意顺序很重要)

从麦克风采集声音数据, 设置采样率, 设置文件保存格式, 设置编码格式,设备文件保存路径

private void start(){

try {

mRecorder=new MediaRecorder();

mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);

mRecorder.setAudioSamplingRate(44100);

mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);

mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);

mRecorder.setOutputFile(path);

mRecorder.prepare();

mRecorder.start();

} catch (IOException e) {

e.printStackTrace();

}

}

2.结束录音

private void stop(){

ToastUtil.startShort(this,"录音文件已保存至:"+path);

mRecorder.stop();

mRecorder.release();

mRecorder=null;

}

视频录制(Camera1和Camera2)

单纯的音频录制很顺利,但是我在写视频录制的代码的过程中踩了很多坑,请读者们注意了,后面我会说道

Camera1

1.开始录制

public void startRecord(String path) {

if(TextUtils.isEmpty(path)){

Log.d(TAG,"Camera1 Record path is empty");

return;

}

mVideoPath=path;

setUpMediaRecorder();

try {

mMediaRecorder.prepare();

mMediaRecorder.start();

Log.d(TAG,"Camera1 has start record");

} catch (IOException e) {

e.printStackTrace();

Log.d

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值