
# 启动音频服务
#### 接口介绍
int OpenAudio(const char \*jsonConfig, AudioCallback callback);
#### 功能描述
打开音频采集服务。
![](https://support.huaweicloud.com/sdkreference-cph/public_sys-resources/note_3.0-zh-cn.png)
基于AOSP音频的实现原理，同时使用scrcpy等监控软件时，OpenAudio出现没有出流数据的情况属于正常现象。
#### 输入参数
表1输入参数说明 
| 参数名称       | 说明                                                                                       |
|:---|:---|
| jsonConfig | 音频初始化参数json串（推荐设置为空，使用默认参数），详见[表2]。 |
| callback   | 音频数据回调函数。                                                                                |
   
 表2jsonConfig参数说明 
| 参数名称       | 参数类型   | 说明                                                                                          |
|:---|:---|:---|
| audioType  | number | 音频类型，默认为1（PCM），可设置为0（OPUS）。                                                                 |
| sampleRate | number | 采样率（单位：Hz），默认为48000，可设置为48000/8000/44100/96000（设置为96000时音频类型只能是PCM）。                        |
| channels   | number | 采样通道数，默认为2（双声道），可设置为1（单声道）。 AOSP14镜像不支持设置单声道。 |
| interval   | number | 采样间隔，默认为10，PCM下默认为10不可修改，OPUS下可设置为10/20。                                                    |
| bitrate    | number | 音频编码码率（单位：bps/s），默认为2\*channels\*sampleRate，OPUS下可以修改，取值范围\[500, 512000\]，PCM下不可修改。         |
   
#### 输出参数
无
#### 返回值
0：成功
小于0：音频服务初始化失败
#### 错误码
请参见[错误码](https://support.huaweicloud.com/sdkreference-cph/cph_sdk_0016.html)。
#### 调用示例
```
static void TestAudioCallback(uint8_t* buffer, uint32_t length, AudioCallbackExt &audioCallbackExt) 
{ 
    std::cout <<"audio_Datasize = "<< length <<std::endl; 
    std::cout << "frameTime is : " << audioCallBackExt.timestamp << std::endl;  
    return 0; 
} 
//若需要获取pcm类型音频数据  
int ret = OpenAudio(nullptr,TestAudioCallback);
//若需要获取opus类型音频数据 
char *jsonstr = "{ \"audioType\":0, \"samplerate\":48000, \"channels\":2, \"interval\":10}"; 
int ret = OpenAudio(jsonstr,TestAudioCallback);
```
