# Audio3ACapRender
**Repository Path**: mediapro/Audio3ACapRender
## Basic Information
- **Project Name**: Audio3ACapRender
- **Description**: windows audio capture render aec agc ans processs lib with only 5 Apis
- **Primary Language**: C
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-10-24
- **Last Updated**: 2023-10-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# audio capture render and 3A (AGC\AEC\ANS\VAD) process with simple api and single lib
## Audio3ACapRenderSdk简介
极简的音频采集、渲染、3A(AGC AEC ANS VAD)一体处理封装库:
音频3A处理(AEC、AGC、ANS)是实时互动领域无法绕开的问题。其中AEC处理与音频的采集、渲染紧密相关,三者的合理耦合对AEC效果影响很大,这也对开发者提出了更高的要求。为了简化上层业务的工作量,我们将音频采集、渲染、3A处理封装成一体库,对外提供非常易用的接口。该库具备以下特点:
* 1、AEC尽量往底层靠,不受网络传输过程中的抖动、丢包等因素影响。
* 2、基于Webrtc AEC(AEC\AECM可选,默认AEC)
* 3、支持8KHZ、16KHZ、32KHZ、44.1KHZ、48KHZ,支持单声道、双声道。
* 4、支持AEC自动延时估计。
* 5、仅5个API,仅一个DLL组成,占用空间小,无第三方依赖,集成简易。
* 6、C++开发,支持C、C++、C#,性能强劲
####单独3A处理库(不集成采集、渲染)的见:https://github.com/waterfoxfox/Audio3AProcess
## Audio3ACapRenderSdk C API
###
* 创建SD3ACapRenderProcess对象
@param: outputPath:日志文件输出的目录,若目录不存在将自动创建
@param: outputLevel:日志输出的级别,只有等于或者高于该级别的日志输出到文件
@return: 返回模块指针,为NULL则失败
void* `SD3ACapRender_New`(const char* outputPath, int outputLevel);;
###
* 销毁SD3ACapRenderProcess对象
@param pp3AProcess: 模块指针指针
@return:
void `SD3ACapRender_Delete`(void** pp3AProcess);
###
* 开始启动SD3ACapRenderProcess处理,即开始采集和3A处理,并支持渲染播放
@param p3AProcess: 模块指针
@param nCapDeviceID: 采集音频设备ID,-1为默认设备
@param nRenderDeviceID: 音频渲染设备ID,-1为默认设备
@param nSampleRate: 输入待处理数据采样率
@param nChannelNum: 输入待处理数据声道数
@param bEnableAec: 是否使能AEC
@param bEnableAgc: 是否使能AGC,多方互动时建议关闭AGC获得更好的AEC效果
@param bEnableAns: 是否使能ANS
@param bEnableVad: 是否使能VAD
@param pfOutput3ACallback: 经过3A处理后的音频采集数据输出回调接口
@param pObject: 上述输出回调接口的透传指针,将通过回调函数形参方式透传外层
@return: TURE成功,FALSE失败
BOOL `SD3ACapRender_Start`(void* p3AProcess, int nCapDeviceID, int nRenderDeviceID, int nSampleRate, int nChannelNum, BOOL bEnableAec, BOOL bEnableAgc, BOOL bEnableAns, BOOL bEnableVad,
Output3AProcessedCaptureData pfOutput3ACallback, void* pObject);
###
* 停止SD3ACapRenderProcess处理
@param p3AProcess: 模块指针
@return:
void `SD3ACapRender_Stop`(void* p3AProcess);
###
* 播放数据,要求采样率、声道数与创建时一致
@param p3AProcess: 模块指针
@param pucData: 待播放数据
@param nLen: 待播放数据大小
@return: 实际播放数据大小
int `SD3ACapRender_Play`(void* p3AProcess, unsigned char *pucData, int nLen);
### 本库仅做演示用途,若需要商业用途与技术支持请联系 www.mediapro.cc
### 更多资源见: https://mediapro.apifox.cn/