# 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/