
# 音频管理
 #### muteLocalAudio
```
- (int)muteLocalAudio:(BOOL)mute;
```
【**功能说明**】
设置是否关闭本地音频流发送。
【**请求参数**】
mute：YES表示关闭音频流发送，NO表示开启音频流发送。
【**返回参数** 】
- 0：方法调用成功。
- \> 0：方法调用失败。具体请参见[HWRtcErrorCode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0080.html)。
 
![](https://support.huaweicloud.com/csdk-rtc/public_sys-resources/caution_3.0-zh-cn.png)
- 默认开启本地音频发流。
- 关闭本地音频发流，不影响本地音频采集。
- 远端用户订阅该用户时，远端用户会收到[onRemoteAudioStateChange](https://support.huaweicloud.com/csdk-rtc/rtc_05_0065.html#rtc_05_0065__section19963618332)远端流状态变化回调。
 
 #### enableLocalAudioStream
```
- (int)enableLocalAudioStream:(BOOL)enable;
```
【**功能说明**】
设置是否开启本地麦克风采集音频。
【**请求参数**】
enable：YES表示开启，NO表示关闭。
【**返回参数** 】
- 0：方法调用成功。
- \> 0：方法调用失败。具体请参见[HWRtcErrorCode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0080.html)。
 
![](https://support.huaweicloud.com/csdk-rtc/public_sys-resources/caution_3.0-zh-cn.png)
- 默认开启，关闭不会影响音频流发送。
- 远端用户订阅该用户时，远端用户会收到[onRemoteAudioStateChange](https://support.huaweicloud.com/csdk-rtc/rtc_05_0065.html#rtc_05_0065__section19963618332)远端流状态变化回调。
 
 #### muteRemoteAudio
```
- (int)muteRemoteAudio:(NSString *)userid muted:(BOOL)muted;
```
【**功能说明**】
订阅或取消订阅对应远端用户的音频流。同一时间所有房间最多只能接收17路音频流。
【**请求参数**】
- userid : 远端用户的id，唯一的标识。
- muted：YES表示取消订阅，NO表示订阅。默认值 NO。
【**返回参数**】
- 0：方法调用成功。
- \> 0：方法调用失败。具体请参见[HWRtcErrorCode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0080.html)。
 
 #### muteAllRemoteAudio
```
- (int)muteAllRemoteAudio:(BOOL)muted;
```
【**功能说明**】
订阅或取消订阅当前房间全部用户的音频流。
【**请求参数**】
muted：YES表示取消订阅，NO表示订阅。
【**返回参数**】
- 0：方法调用成功。
- \> 0：方法调用失败。具体请参见[HWRtcErrorCode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0080.html)。
![](https://support.huaweicloud.com/csdk-rtc/public_sys-resources/caution_3.0-zh-cn.png)
- 取消所有音频流接收，同时也会取消接收新加入用户的音频流。
- 开启所有音频流接收，同时也会开启接收新加入用户的音频流。
- 默认开启所有音频流接收。
 
 #### setVolumeNotifyInterval
```
- (int)setVolumeNotifyInterval:(int)volInterval;
```
【**功能说明**】
指定音量提示的时间间隔， 设置后按时间间隔触发回调，包括用户音量回调[onUserVolumeStatsNotify](https://support.huaweicloud.com/csdk-rtc/rtc_05_0065.html#rtc_05_0065__section79643187318)，本地采集音量回调[onLocalVolumeChangedNotify](https://support.huaweicloud.com/csdk-rtc/rtc_05_0065.html#rtc_05_0065__section043003918272)。
【**请求参数**】
volInterval：间隔时间, 0 关闭音量上报不再触发回调 。volInterval取值范围为\[100 10000\]ms。建议设置为2000ms，默认值为2000ms。
【**返回参数**】
- 0：方法调用成功。
- \> 0：方法调用失败。具体请参见[HWRtcErrorCode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0080.html)。
 
 #### adjustRecordingVolume
```
- (int)adjustRecordingVolume:(unsigned int)volume;
```
【**功能说明**】
调整录制音量值。
【**请求参数**】
volume：音量值，取值范围为\[0,100\]，默认音量值为10， 此接口不会影响系统音量。
【**返回参数** 】
- 0：方法调用成功。
- \>0：方法调用失败，具体请参见[HWRtcErrorCode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0080.html)。
 
 #### adjustPlaybackVolume
```
- (int)adjustPlaybackVolume:(unsigned int)volume;
- (int)adjustPlaybackVolume:(NSString *)userid volume :(unsigned int)volume;
```
【**功能说明**】
设置扬声器播放的音量。
【**请求参数**】
- volume：范围为\[0-100\]，其中10表示原始音量。
- userid：用户id。
【**返回参数** 】
- 0：方法调用成功。
- \> 0：方法调用失败。具体请参见[HWRtcErrorCode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0080.html)。
 
![](https://support.huaweicloud.com/csdk-rtc/public_sys-resources/caution_3.0-zh-cn.png)
不影响系统音量。
 #### setShareComputerSound
```
- (int)setShareComputerSound:(BOOL)enable;
```
【**功能说明**】
共享声音。
【**请求参数**】
enable：YES表示开启，NO表示关闭。 默认关闭。
【**返回参数**】
- 0：方法调用成功。
- \> 0：方法调用失败。具体请参见[HRTCErrorCode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0080.html)。
![](https://support.huaweicloud.com/csdk-rtc/public_sys-resources/caution_3.0-zh-cn.png)
- 用户需要[提交工单](https://console.huaweicloud.com/ticket/#/ticketindex/createIndex)联系华为云技术客服获取共享音频驱动。
- 安装驱动有两种方式推荐，任选其一： **由于第二种方法无法覆盖安装驱动，因此建议您使用第一种集成方式，以对应驱动的版本更新。**
  - 在安装集成了SDK的应用时，一同安装驱动。执行如下脚本：
    ```
    sudo installer -pkg "pkg安装包全路径+文件名" -target /Library/Audio/Plug-Ins
    ```
    
  
  - 应用启动共享功能时，让SDK自主安装，此时需要做前置动作：将驱动放置在用户的Documents/Resource文件夹（如果Documents目录下没有Resource文件夹，则需要创建），需要用户权限来安装驱动，安装完成后需要重启应用。安装成功后，之后打开共享功能无需再安装。
   
- SDK无法检测到应用的卸载动作，所以需要应用层面在卸载时删除驱动缓存，执行如下脚本：
  ```
  sudo rm -rf /Library/Audio/Plug-Ins/HAL/HWMeetAudioDevice.driver
  sudo launchctl kickstart -k system/com.apple.audio.coreaudiod
  ```
  
- 检测驱动安装是否成功：
  1. 查看**/Library/Audio/Plug-Ins/HAL/HWMeetAudioDevice.driver**是否存在。
  
  2. 查看系统设置偏好-声音-输出一栏，是否切换为hw驱动作为输出。该检查方式只有在启动了共享时才可查看。
   
 
 #### sendAudioSeiMsg
```
- (int)sendAudioSeiMsg:(NSString *)message repeateCount:(int)repeateCount;
```
【**功能说明**】
发送音频SEI消息。通过音频SEI可将自定义信息嵌入到音频流中，发送给其他用户。
【**请求参数**】
- message：发送的内容。长度为1-500字节。
- repeateCount：发送次数（1-10）。根据需要填发送次数，一般发1次。
【**返回参数**】
- 0：方法调用成功。
- \< 0：方法调用失败。具体请参见[HRTCErrorCode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0080.html)。
 
 #### setDefaultSpeakerModel
```
- (int)setDefaultSpeakerModel:(HWRtcSpeakerModel)speakerModel;
```
【**功能说明**】
设置默认的声音播放模式，在房间外调用。
【**请求参数**】
speakerModel：声音播放模式，具体请参见[HWRtcSpeakerModel](https://support.huaweicloud.com/csdk-rtc/rtc_05_0082.html#rtc_05_0082__section11308172104120)。默认值为HWRtcSpeakerModelSpeaker。
【**返回参数**】
- 0：方法调用成功。
- \> 0：方法调用失败。具体请参见[HRTCErrorCode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0080.html)。
 
 #### setAudioFrameRecordParameters
```
- (int)setAudioFrameRecordParameters:(int)sampleRate channel:(int)channel mode:(HWRTCAudioOperateMode)mode samplesPerCall:(int)samplesPerCall;
```
【**功能说明**】
设置采集回调参数，配合setAudioFrameObserver的onAudioFrameRecord使用。
【**请求参数**】
- sampleRate：[onAudioFrameRecord](https://support.huaweicloud.com/csdk-rtc/rtc_05_0078.html#rtc_05_0078__section23831351193712)中返回的采样率，可设置为8000，16000，32000，44100，48000。
- channel：声道，1表示单声道，2表示双声道。
- mode：可读可写模式，具体请参见[HWRTCAudioOperateMode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0082.html#rtc_05_0082__section1712287152811)。
- samplesPerCall：每次回调的单声道样点数（小于(sampleRate/100)\*channel\*2\*3, 大于(sample/(100\*3))\*channel\*2）。
【**返回参数**】
- 0：方法调用成功。
- \> 0：方法调用失败。具体请参见[HRTCErrorCode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0080.html)。
 
 #### setAudioConfig
```
- (int)setAudioConfig:(HWRtcAudioQualityLevel)level scene:(HWRtcAudioSceneType)scene;
```
【**功能说明**】
设置使用场景。该接口需要在[joinRoom](https://support.huaweicloud.com/csdk-rtc/rtc_05_0014.html#rtc_05_0014__section05521352232)前调用。
此接口可在initWithConfig接口设置场景后改变音频场景，暂不支持初始化scene设置音乐再通过此接口设置为会议。
【**请求参数**】
- level：表示档位，会议模式暂时只支持16k。具体请参见[HWRtcAudioQualityLevel](https://support.huaweicloud.com/csdk-rtc/rtc_05_0082.html#rtc_05_0082__section134697216597)。
- scene：表示音频模式，具体请参见[HWRtcAudioSceneType](https://support.huaweicloud.com/csdk-rtc/rtc_05_0082.html#rtc_05_0082__section87578573218)。
【**返回参数** 】
- 0：方法调用成功。
- \> 0：方法调用失败。具体请参见[HWRtcErrorCode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0080.html)。
 
