
# 音频自采集和音频自渲染
#### 功能描述
实时音频传输过程中，HWRtcEngine SDK通常会启动默认的音频模块进行采集和渲染。在以下场景中，您可能会发现默认的音频模块无法满足开发需求：
- app中已有自己的音频模块。
- 需要使用自定义的采集或播放处理。
- 某些音频采集设备被系统独占。
 
 #### 接口调用流程
![](https://support.huaweicloud.com/bestpractice-rtc/zh-cn_image_0000001212058007.png)
#### 实现音频自采集和音频自渲染
1. **加入房间前**
   加入房间前，调用setExternalAudioCapture，开启音频自采集。
   ```
   public void openExternalAudio() {
       mHwRtcEngine.setExternalAudioCapture(true, sample, 1);
   }
   ```
   
2. **加入房间**
   参考[接口调用流程]中加入房间的时序图步骤加入房间。
   
3. **定时推送音频数据帧**
   加入房间成功回调后，每隔10ms定时调用pushExternalAudioFrame接口推送外部音频数据。
   音频数据大小：10 \* sample \* channel \* 16 / 8 / 1000字节，其中sample和channel是调用setExternalAudioCapture传入的采样率和声道数。
   ```
   public void pushExternalAudio() {
       new Timer().schedule(new TimerTask() {
               @Override
               public void run() {
                   mHwRtcEngine.pushExternalAudioFrame(audioData);
               }
           }, 0, 10);
   }
   ```
   
4. **音频自渲染**
   暂不支持
   
 
#### API参考
[setExternalAudioCapture](https://support.huaweicloud.com/csdk-rtc/rtc_05_0022.html#section0)
[pushExternalAudioFrame](https://support.huaweicloud.com/csdk-rtc/rtc_05_0022.html#section2)
