国标GB28181协议视频推流平台EasyGBD手机推流如何实现音频采集功能?
原标题:国标GB28181协议视频推流平台EasyGBD手机推流如何实现音频采集功能?
在之前的博文中 , 我们和大家分享了国标EasyGBD视频推流组件在开发过程中 , 实现了视频采集功能(EasyGBD搜集视频采集数据功能是如何实现的) , 那么同样 , 音频采集也是我们需要完善的地方 。 
文章图片
EasyGBD音频采集是基于AudioRecord实现的 。
1、权限申请
【国标GB28181协议视频推流平台EasyGBD手机推流如何实现音频采集功能?】<uses-permissionandroid:name="android.permission.RECORD_AUDIO"/>
2、初始化
/*
*1、配置参数 , 初始化AudioRecord构造函数
*audioSource:音频采集的输入源 , DEFAULT(默认) , VOICE_RECOGNITION(用于语音识别 , 等同于DEFAULT) , MIC(由手机麦克风输入) , VOICE_COMMUNICATION(用于VoIP应用)等等
*sampleRateInHz:采样率 , 注意 , 目前44.1kHz是唯一可以保证兼容所有Android手机的采样率
*channelConfig:通道数的配置 , CHANNEL_IN_MONO(单通道) , CHANNEL_IN_STEREO(双通道)
*audioFormat:配置“数据位宽”的,ENCODING_PCM_16BIT(16bit) , ENCODING_PCM_8BIT(8bit)
*bufferSizeInBytes:配置的是AudioRecord内部的音频缓冲区的大小 , 该缓冲区的值不能低于一帧“音频帧”(Frame)的大小
**/
mAudioRecord=newAudioRecord(MediaRecorder.AudioSource.MIC,
samplingRate,
AudioFormat.CHANNEL_IN_MONO,
AudioFormat.ENCODING_PCM_16BIT,
bufferSize);
3、开始采集
mAudioRecord.startRecording();
4、读取采集到的声音数据
/*
*不断的读取采集到的声音数据 , 放进编码器的输入缓存inputBuffers中进行编码
*audioBuffer存储写入音频录制数据的缓冲区
*sizeInBytes请求的最大字节数
*publicintread(ByteBufferaudioBuffer,intsizeInBytes)
**/
len=mAudioRecord.read(inputBuffers[bufferIndex],BUFFER_SIZE);
5、停止采集 , 释放资源
if(mAudioRecord!=null){
mAudioRecord.stop();
mAudioRecord.release();
mAudioRecord=null;
}
- 伟鸿集团(03321-HK)与广东汇徽隆投资签框架合作补充协议
- 唯一让寂然称赞边路实力媲美杰杰,此人一号三国标!战力全部突破1W7
- 中俄疫苗在全球广受欢迎,白宫却鸡蛋里挑骨头:称不符合美国标准
- 全网首个“零充党”,有15个国标玩家诞生,离辅助全国标只差两个
- 中俄对外援助新冠疫苗,却遭美国批评,白宫:不符合“美国标准”
- 美国标准就是世界标准?白宫:中俄搞“疫苗外交”不符合美国标准
- 中俄疫苗畅销全球,美却称不符合美国标准,拉拢多国制定对抗计划
- 格里芬|曝活塞寻求与布雷克-格里芬达成买断协议
- 作业|为给学生减负,长沙一小学签不做作业协议,评论区里家长吵翻天
- 刚与ASML签订采购协议的中芯国际,成这些半导体公司业绩重要来源
