# 音频设备管理 (/zh-CN/api-reference/rtc/unreal-cpp/device-management/audio-device)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

<a id="toc_audio_device"></a>

<a id="api_iaudiodevicemanager_enumerateplaybackdevices"></a>

<a id="ariaid-title2"></a>

## enumeratePlaybackDevices [#enumerateplaybackdevices]

获取系统中所有的播放设备列表。

<a id="api_iaudiodevicemanager_enumerateplaybackdevices__prototype"></a>

```cpp
virtual IAudioDeviceCollection* enumeratePlaybackDevices() = 0;
```

<a id="api_iaudiodevicemanager_enumerateplaybackdevices__detailed_desc"></a>

### 详情 [#详情]

:::caution
注意： 该方法仅适用于 Windows 和 macOS。
:::

该方法返回一个 [IAudioDeviceCollection](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicecollection) 对象，包含系统中所有的播放设备。通过 IAudioDeviceCollection 对象，App 可以枚举播放设备。在使用结束后，App 需调用 [release](/zh-CN/api-reference/rtc/unreal-cpp/device-management/audio-device#api_iaudiodevicecollection_release) 方法销毁返回的对象。

<a id="api_iaudiodevicemanager_enumerateplaybackdevices__return_values"></a>

### 返回值 [#返回值]

- 方法调用成功：返回一个 [IAudioDeviceCollection](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicecollection) 对象，包含所有的音频播放设备。
- 方法调用失败: NULL。

### 所属接口类 [#所属接口类]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicemanager_enumeraterecordingdevices"></a>

<a id="ariaid-title3"></a>

## enumerateRecordingDevices [#enumeraterecordingdevices]

获取系统中所有的音频采集设备列表。

<a id="api_iaudiodevicemanager_enumeraterecordingdevices__prototype"></a>

```cpp
virtual IAudioDeviceCollection* enumerateRecordingDevices() = 0;
```

<a id="api_iaudiodevicemanager_enumeraterecordingdevices__detailed_desc"></a>

### 详情 [#详情-1]

:::caution
注意： 该方法仅适用于 Windows 和 macOS。
:::

该方法返回一个 [IAudioDeviceCollection](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicecollection) 对象，包含系统中所有的音频采集设备。通过 IAudioDeviceCollection 对象，App 可以枚举音频采集设备。在使用结束后，App 需调用 [release](/zh-CN/api-reference/rtc/unreal-cpp/device-management/audio-device#api_iaudiodevicecollection_release) 方法销毁返回的对象。

<a id="api_iaudiodevicemanager_enumeraterecordingdevices__return_values"></a>

### 返回值 [#返回值-1]

- 方法调用成功：返回一个 [IAudioDeviceCollection](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicecollection) 对象，包含所有的音频采集设备。
- 方法调用失败: NULL。

### 所属接口类 [#所属接口类-1]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicemanager_followsystemloopbackdevice"></a>

<a id="ariaid-title4"></a>

## followSystemLoopbackDevice [#followsystemloopbackdevice]

设置声卡采集设备是否跟随系统默认的播放设备。

<a id="api_iaudiodevicemanager_followsystemloopbackdevice__prototype"></a>

```cpp
virtual int followSystemLoopbackDevice(bool enable) = 0;
```

<a id="api_iaudiodevicemanager_followsystemloopbackdevice__detailed_desc"></a>

### 详情 [#详情-2]

方法仅适用于 Windows 和 macOS。

<a id="api_iaudiodevicemanager_followsystemloopbackdevice__parameters"></a>

### 参数 [#参数]

<ParameterList>
<a id="enable"></a>
<Parameter name="enable">

是否跟随系统默认的播放设备：

<a id="api_iaudiodevicemanager_followsystemloopbackdevice__ul_l4n_jf3_5sb"></a>

- `true`：跟随。当系统默认播放设备发生改变时，SDK 立即跟随切换声卡采集设备。
- `false`：不跟随。只有当 SDK 使用的声卡采集设备被移除后，SDK 才切换至系统默认的音频播放设备。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicemanager_followsystemloopbackdevice__return_values"></a>

### 返回值 [#返回值-2]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-2]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicemanager_followsystemplaybackdevice"></a>

<a id="ariaid-title5"></a>

## followSystemPlaybackDevice [#followsystemplaybackdevice]

设置 SDK 使用的音频播放设备跟随系统默认的音频播放设备。

<a id="api_iaudiodevicemanager_followsystemplaybackdevice__prototype"></a>

```cpp
virtual int followSystemPlaybackDevice(bool enable) = 0;
```

<a id="api_iaudiodevicemanager_followsystemplaybackdevice__detailed_desc"></a>

### 详情 [#详情-3]

:::caution
注意： 该方法仅适用于 Windows 和 macOS。
:::

<a id="api_iaudiodevicemanager_followsystemplaybackdevice__parameters"></a>

### 参数 [#参数-1]

<ParameterList>
<a id="enable-1"></a>
<Parameter name="enable">

是否跟随系统默认的音频播放设备：

<a id="api_iaudiodevicemanager_followsystemplaybackdevice__ul_l4n_jf3_5sb"></a>

- `true`：跟随。当系统默认音频播放设备发生改变时，SDK 立即切换音频播放设备。
- `false`：不跟随。只有当 SDK 使用的音频播放设备被移除后，SDK 才切换至系统默认的音频播放设备。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicemanager_followsystemplaybackdevice__return_values"></a>

### 返回值 [#返回值-3]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-3]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicemanager_followsystemrecordingdevice"></a>

<a id="ariaid-title6"></a>

## followSystemRecordingDevice [#followsystemrecordingdevice]

设置 SDK 使用的音频采集设备跟随系统默认的音频采集设备。

<a id="api_iaudiodevicemanager_followsystemrecordingdevice__prototype"></a>

```cpp
virtual int followSystemRecordingDevice(bool enable) = 0;
```

<a id="api_iaudiodevicemanager_followsystemrecordingdevice__detailed_desc"></a>

### 详情 [#详情-4]

:::caution
注意： 该方法仅适用于 Windows 和 macOS。
:::

<a id="api_iaudiodevicemanager_followsystemrecordingdevice__parameters"></a>

### 参数 [#参数-2]

<a id="api_iaudiodevicemanager_followsystemrecordingdevice__parml_ywj_tf3_5sb"></a>

<ParameterList>
<a id="enable-2"></a>
<Parameter name="enable">

是否跟随系统默认的音频采集设备：

<a id="api_iaudiodevicemanager_followsystemrecordingdevice__ul_zwj_tf3_5sb"></a>

- `true`：跟随。当系统默认的音频采集设备改变时，SDK 立即切换音频采集设备。
- `false`：不跟随。只有当 SDK 使用的音频采集设备被移除后，SDK 才切换至系统默认的音频采集设备。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicemanager_followsystemrecordingdevice__return_values"></a>

### 返回值 [#返回值-4]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-4]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicecollection_getapplicationvolume"></a>

<a id="ariaid-title7"></a>

## getApplicationVolume [#getapplicationvolume]

获取 App 的当前音量。

<a id="api_iaudiodevicecollection_getapplicationvolume__prototype"></a>

```cpp
virtual int getApplicationVolume(int& volume) = 0;
```

<a id="api_iaudiodevicecollection_getapplicationvolume__parameters"></a>

### 参数 [#参数-3]

<ParameterList>
<a id="volume"></a>
<Parameter name="volume">

App 当前的音量，取值范围为 [0,255]。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicecollection_getapplicationvolume__return_values"></a>

### 返回值 [#返回值-5]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-5]

- [IAudioDeviceCollection](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicecollection)

<a id="api_irtcengine_getaudiodeviceinfo"></a>

<a id="ariaid-title8"></a>

## getAudioDeviceInfo [#getaudiodeviceinfo]

获取音频设备信息。

<a id="api_irtcengine_getaudiodeviceinfo__prototype"></a>

```cpp
virtual int getAudioDeviceInfo(DeviceInfo& deviceInfo) = 0;
```

<a id="api_irtcengine_getaudiodeviceinfo__detailed_desc"></a>

### 详情 [#详情-5]

调用该方法后，你可以获取音频设备是否支持极低延时采集和播放。

:::caution
注意：

- 该方法仅适用于 Android 平台。
- 该方法在加入频道前后均可调用。
:::

<a id="api_irtcengine_getaudiodeviceinfo__parameters"></a>

### 参数 [#参数-4]

<ParameterList>
<a id="deviceinfo"></a>
<Parameter name="deviceInfo">

输入和输出参数。标识音频设备信息的 [DeviceInfo](/zh-CN/api-reference/rtc/unreal-cpp/class-deviceinfo) 对象。

- 输入值：一个 DeviceInfo 对象。
- 输出值：一个包含了音频设备信息的 DeviceInfo 对象。

</Parameter>
</ParameterList>

<a id="api_irtcengine_getaudiodeviceinfo__return_values"></a>

### 返回值 [#返回值-6]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-6]

- [IRtcEngine](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_irtcengine)

<a id="api_iaudiodevicecollection_getcount"></a>

<a id="ariaid-title9"></a>

## getCount [#getcount]

获取播放或音频采集设备数量。

<a id="api_iaudiodevicecollection_getcount__prototype"></a>

```cpp
virtual int getCount() = 0;
```

<a id="api_iaudiodevicecollection_getcount__detailed_desc"></a>

### 详情 [#详情-6]

如果先调用 [enumeratePlaybackDevices](/zh-CN/api-reference/rtc/unreal-cpp/device-management/audio-device#api_iaudiodevicemanager_enumerateplaybackdevices) 再调用该方法，返回播放设备的数量。如果先调用 [enumerateRecordingDevices](/zh-CN/api-reference/rtc/unreal-cpp/device-management/audio-device#api_iaudiodevicemanager_enumeraterecordingdevices) 再调用该方法，则返回音频采集设备的数量。

<a id="api_iaudiodevicecollection_getcount__return_values"></a>

### 返回值 [#返回值-7]

语音设备数目。

### 所属接口类 [#所属接口类-7]

- [IAudioDeviceCollection](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicecollection)

<a id="api_iaudiodevicecollection_getdefaultdevice"></a>

<a id="ariaid-title10"></a>

## getDefaultDevice [1/2] [#getdefaultdevice-12]

获取系统默认的音频设备。

<a id="api_iaudiodevicecollection_getdefaultdevice__prototype"></a>

```cpp
virtual int getDefaultDevice(char deviceName[MAX_DEVICE_ID_LENGTH], char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
```

<a id="api_iaudiodevicecollection_getdefaultdevice__detailed_desc"></a>

### 详情 [#详情-7]

- 该方法仅适用于 Windows 和 macOS。
- 你需要先调用 [enumeratePlaybackDevices](/zh-CN/api-reference/rtc/unreal-cpp/device-management/audio-device#api_iaudiodevicemanager_enumerateplaybackdevices) 或 [enumerateRecordingDevices](/zh-CN/api-reference/rtc/unreal-cpp/device-management/audio-device#api_iaudiodevicemanager_enumeraterecordingdevices) 获取设备列表后，再调用该方法。

<a id="api_iaudiodevicecollection_getdefaultdevice__parameters"></a>

### 参数 [#参数-5]

<ParameterList>
<a id="devicename"></a>
<Parameter name="deviceName">

输出参数，系统默认的音频设备名称。最大长度为 [MAX_DEVICE_ID_LENGTH_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-maxdeviceidlengthtype)。

</Parameter>
<a id="deviceid"></a>
<Parameter name="deviceId">

输出参数，系统默认的音频设备 ID。最大长度为 [MAX_DEVICE_ID_LENGTH_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-maxdeviceidlengthtype)。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicecollection_getdefaultdevice__return_values"></a>

### 返回值 [#返回值-8]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见 [错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-8]

- [IAudioDeviceCollection](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicecollection)

<a id="api_iaudiodevicecollection_getdefaultdevice2"></a>

<a id="ariaid-title11"></a>

## getDefaultDevice [2/2] [#getdefaultdevice-22]

获取系统默认的音频设备及设备类型。

<a id="api_iaudiodevicecollection_getdefaultdevice2__prototype"></a>

```cpp
virtual int getDefaultDevice(char deviceName[MAX_DEVICE_ID_LENGTH], char deviceTypeName[MAX_DEVICE_ID_LENGTH], char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
```

<a id="api_iaudiodevicecollection_getdefaultdevice2__detailed_desc"></a>

### 详情 [#详情-8]

- 该方法仅适用于 macOS。
- 你需要先调用 [enumeratePlaybackDevices](/zh-CN/api-reference/rtc/unreal-cpp/device-management/audio-device#api_iaudiodevicemanager_enumerateplaybackdevices) 或 [enumerateRecordingDevices](/zh-CN/api-reference/rtc/unreal-cpp/device-management/audio-device#api_iaudiodevicemanager_enumeraterecordingdevices) 获取设备列表后，再调用该方法。

<a id="api_iaudiodevicecollection_getdefaultdevice2__parameters"></a>

### 参数 [#参数-6]

<ParameterList>
<a id="devicename-1"></a>
<Parameter name="deviceName">

输出参数，系统默认的音频设备名称。最大长度为 [MAX_DEVICE_ID_LENGTH_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-maxdeviceidlengthtype)。

</Parameter>
<a id="devicetypename"></a>
<Parameter name="deviceTypeName">

输出参数，音频设备类型，如：built-in、USB、HDMI 等。最大长度为 [MAX_DEVICE_ID_LENGTH_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-maxdeviceidlengthtype)。

</Parameter>
<a id="deviceid-1"></a>
<Parameter name="deviceId">

输出参数，系统默认的音频设备 ID。最大长度为 [MAX_DEVICE_ID_LENGTH_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-maxdeviceidlengthtype)。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicecollection_getdefaultdevice2__return_values"></a>

### 返回值 [#返回值-9]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见 [错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-9]

- [IAudioDeviceCollection](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicecollection)

<a id="api_iaudiodevicecollection_getdevice"></a>

<a id="ariaid-title12"></a>

## getDevice [1/2] [#getdevice-12]

获取指定 index 的音频设备信息。

<a id="api_iaudiodevicecollection_getdevice__prototype"></a>

```cpp
virtual int getDevice(int index, char deviceName[MAX_DEVICE_ID_LENGTH], char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
```

<a id="api_iaudiodevicecollection_getdevice__detailed_desc"></a>

### 详情 [#详情-9]

<a id="api_iaudiodevicecollection_getdevice__note"></a>

该方法仅适用于 Windows 和 macOS。

<a id="api_iaudiodevicecollection_getdevice__parameters"></a>

### 参数 [#参数-7]

<ParameterList>
<a id="index"></a>
<Parameter name="index">

输入参数，指定想查询的设备信息。

</Parameter>
<a id="devicename-2"></a>
<Parameter name="deviceName">

输出参数，设备名称。最大长度为 [MAX_DEVICE_ID_LENGTH_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-maxdeviceidlengthtype)。

</Parameter>
<a id="deviceid-2"></a>
<Parameter name="deviceId">

输出参数，设备 ID。最大长度为 [MAX_DEVICE_ID_LENGTH_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-maxdeviceidlengthtype)。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicecollection_getdevice__return_values"></a>

### 返回值 [#返回值-10]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-10]

- [IAudioDeviceCollection](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicecollection)

<a id="api_iaudiodevicecollection_getdevice2"></a>

<a id="ariaid-title13"></a>

## getDevice [2/2] [#getdevice-22]

获取指定 index 的音频设备信息及设备类型。

<a id="api_iaudiodevicecollection_getdevice2__prototype"></a>

```cpp
virtual int getDevice(int index, char deviceName[MAX_DEVICE_ID_LENGTH], char deviceTypeName[MAX_DEVICE_ID_LENGTH],
                        char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
```

<a id="api_iaudiodevicecollection_getdevice2__detailed_desc"></a>

### 详情 [#详情-10]

你可以调用该方法获取指定音频设备的名称、设备类型及 ID。

:::caution
注意： 该方法仅适用于 macOS 平台。
:::

<a id="api_iaudiodevicecollection_getdevice2__parameters"></a>

### 参数 [#参数-8]

<ParameterList>
<a id="index-1"></a>
<Parameter name="index">

输入参数，指定想查询的设备信息。

</Parameter>
<a id="deviceid-3"></a>
<Parameter name="deviceId">

输出参数，设备 ID。最大长度为 [MAX_DEVICE_ID_LENGTH_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-maxdeviceidlengthtype)。

</Parameter>
<a id="devicename-3"></a>
<Parameter name="deviceName">

输出参数，设备名称。最大长度为 [MAX_DEVICE_ID_LENGTH_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-maxdeviceidlengthtype)。

</Parameter>
<a id="devicetypename-1"></a>
<Parameter name="deviceTypeName">

输出参数，音频设备类型，如：built-in、USB、HDMI 等。最大长度为 [MAX_DEVICE_ID_LENGTH_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-maxdeviceidlengthtype)。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicecollection_getdevice2__return_values"></a>

### 返回值 [#返回值-11]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-11]

- [IAudioDeviceCollection](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicecollection)

<a id="api_iaudiodevicemanager_getloopbackdevice"></a>

<a id="ariaid-title14"></a>

## getLoopbackDevice [#getloopbackdevice]

获取当前的声卡采集设备。

<a id="api_iaudiodevicemanager_getloopbackdevice__prototype"></a>

```cpp
virtual int getLoopbackDevice(char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
```

<a id="api_iaudiodevicemanager_getloopbackdevice__detailed_desc"></a>

### 详情 [#详情-11]

该方法仅适用于 Windows 和 macOS。

<a id="api_iaudiodevicemanager_getloopbackdevice__parameters"></a>

### 参数 [#参数-9]

<ParameterList>
<a id="deviceid-4"></a>
<Parameter name="deviceId">

输出参数，当前声卡采集设备的 ID。

最大长度为 [MAX_DEVICE_ID_LENGTH_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-maxdeviceidlengthtype)。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicemanager_getloopbackdevice__return_values"></a>

### 返回值 [#返回值-12]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-12]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicemanager_getplaybackdevice"></a>

<a id="ariaid-title15"></a>

## getPlaybackDevice [#getplaybackdevice]

获取当前音频播放设备。

<a id="api_iaudiodevicemanager_getplaybackdevice__prototype"></a>

```cpp
virtual int getPlaybackDevice(char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
```

<a id="api_iaudiodevicemanager_getplaybackdevice__detailed_desc"></a>

### 详情 [#详情-12]

:::caution
注意： 该方法仅适用于 Windows 和 macOS。
:::

<a id="api_iaudiodevicemanager_getplaybackdevice__parameters"></a>

### 参数 [#参数-10]

<ParameterList>
<a id="deviceid-5"></a>
<Parameter name="deviceId">

输出参数，当前音频播放设备的设备 ID。最大长度为 [MAX_DEVICE_ID_LENGTH_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-maxdeviceidlengthtype)。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicemanager_getplaybackdevice__return_values"></a>

### 返回值 [#返回值-13]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-13]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicemanager_getplaybackdeviceinfo"></a>

<a id="ariaid-title16"></a>

## getPlaybackDeviceInfo [1/2] [#getplaybackdeviceinfo-12]

获取音频播放设备信息。

<a id="api_iaudiodevicemanager_getplaybackdeviceinfo__prototype"></a>

```cpp
virtual int getPlaybackDeviceInfo(char deviceId[MAX_DEVICE_ID_LENGTH], char deviceName[MAX_DEVICE_ID_LENGTH]) = 0;
```

<a id="api_iaudiodevicemanager_getplaybackdeviceinfo__detailed_desc"></a>

### 详情 [#详情-13]

:::caution
注意： 该方法仅适用于 Windows 和 macOS。
:::

<a id="api_iaudiodevicemanager_getplaybackdeviceinfo__parameters"></a>

### 参数 [#参数-11]

<ParameterList>
<a id="deviceid-6"></a>
<Parameter name="deviceId">

输出参数，播放设备的设备 ID。最大长度为 [MAX_DEVICE_ID_LENGTH_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-maxdeviceidlengthtype)。

</Parameter>
<a id="devicename-4"></a>
<Parameter name="deviceName">

输出参数，播放设备的设备名称。最大长度为 [MAX_DEVICE_ID_LENGTH_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-maxdeviceidlengthtype)。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicemanager_getplaybackdeviceinfo__return_values"></a>

### 返回值 [#返回值-14]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-14]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicemanager_getplaybackdeviceinfo2"></a>

<a id="ariaid-title17"></a>

## getPlaybackDeviceInfo [2/2] [#getplaybackdeviceinfo-22]

获取音频播放设备信息及其类型。

<a id="api_iaudiodevicemanager_getplaybackdeviceinfo2__prototype"></a>

```cpp
virtual int getPlaybackDeviceInfo(char deviceId[MAX_DEVICE_ID_LENGTH], char deviceName[MAX_DEVICE_ID_LENGTH], char deviceTypeName[MAX_DEVICE_ID_LENGTH]) = 0;
```

<a id="api_iaudiodevicemanager_getplaybackdeviceinfo2__detailed_desc"></a>

### 详情 [#详情-14]

该方法仅适用于 macOS。

<a id="api_iaudiodevicemanager_getplaybackdeviceinfo2__parameters"></a>

### 参数 [#参数-12]

<ParameterList>
<a id="deviceid-7"></a>
<Parameter name="deviceId">

输出参数，播放设备的设备 ID。最大长度为 [MAX_DEVICE_ID_LENGTH_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-maxdeviceidlengthtype)。

</Parameter>
<a id="devicename-5"></a>
<Parameter name="deviceName">

输出参数，播放设备的设备名称。最大长度为 [MAX_DEVICE_ID_LENGTH_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-maxdeviceidlengthtype)。

</Parameter>
<a id="devicetypename-2"></a>
<Parameter name="deviceTypeName">

输出参数，音频播放设备类型，如：built-in、USB、HDMI 等。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicemanager_getplaybackdeviceinfo2__return_values"></a>

### 返回值 [#返回值-15]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

<a id="api_iaudiodevicemanager_getplaybackdevicemute"></a>

<a id="ariaid-title18"></a>

## getPlaybackDeviceMute [#getplaybackdevicemute]

获取当前播放设备静音状态。

<a id="api_iaudiodevicemanager_getplaybackdevicemute__prototype"></a>

```cpp
virtual int getPlaybackDeviceMute(bool *mute) = 0;
```

<a id="api_iaudiodevicemanager_getplaybackdevicemute__parameters"></a>

### 参数 [#参数-13]

<ParameterList>
<a id="mute"></a>
<Parameter name="mute">

播放设备静音状态：

- `true`: 播放设备为静音状态。
- `false`: 播放设备为非静音状态。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicemanager_getplaybackdevicemute__return_values"></a>

### 返回值 [#返回值-16]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-15]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicemanager_getplaybackdevicevolume"></a>

<a id="ariaid-title19"></a>

## getPlaybackDeviceVolume [#getplaybackdevicevolume]

获取播放设备音量。

<a id="api_iaudiodevicemanager_getplaybackdevicevolume__prototype"></a>

```cpp
virtual int getPlaybackDeviceVolume(int *volume) = 0;
```

<a id="api_iaudiodevicemanager_getplaybackdevicevolume__parameters"></a>

### 参数 [#参数-14]

<ParameterList>
<a id="volume-1"></a>
<Parameter name="volume">

输出参数。播放设备音量。取值范围 [0,255]。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicemanager_getplaybackdevicevolume__return_values"></a>

### 返回值 [#返回值-17]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

<a id="api_iaudiodevicemanager_getrecordingdevice"></a>

<a id="ariaid-title20"></a>

## getRecordingDevice [#getrecordingdevice]

获取当前音频采集设备。

<a id="api_iaudiodevicemanager_getrecordingdevice__prototype"></a>

```cpp
virtual int getRecordingDevice(char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
```

<a id="api_iaudiodevicemanager_getrecordingdevice__detailed_desc"></a>

### 详情 [#详情-15]

:::caution
注意： 该方法仅适用于 Windows 和 macOS。
:::

<a id="api_iaudiodevicemanager_getrecordingdevice__parameters"></a>

### 参数 [#参数-15]

<ParameterList>
<a id="deviceid-8"></a>
<Parameter name="deviceId">

输出参数。当前采集设备的设备 ID。最大长度为 [MAX_DEVICE_ID_LENGTH_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-maxdeviceidlengthtype)。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicemanager_getrecordingdevice__return_values"></a>

### 返回值 [#返回值-18]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-16]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicemanager_getrecordingdeviceinfo"></a>

<a id="ariaid-title21"></a>

## getRecordingDeviceInfo [1/2] [#getrecordingdeviceinfo-12]

获取音频采集设备信息。

<a id="api_iaudiodevicemanager_getrecordingdeviceinfo__prototype"></a>

```cpp
virtual int getRecordingDeviceInfo(char deviceId[MAX_DEVICE_ID_LENGTH], char deviceName[MAX_DEVICE_ID_LENGTH]) = 0;
```

<a id="api_iaudiodevicemanager_getrecordingdeviceinfo__detailed_desc"></a>

### 详情 [#详情-16]

:::caution
注意： 该方法仅适用于 Windows 和 macOS。
:::

<a id="api_iaudiodevicemanager_getrecordingdeviceinfo__parameters"></a>

### 参数 [#参数-16]

<ParameterList>
<a id="deviceid-9"></a>
<Parameter name="deviceId">

输出参数，播放设备的设备 ID。最大长度为 [MAX_DEVICE_ID_LENGTH_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-maxdeviceidlengthtype)。

</Parameter>
<a id="devicename-6"></a>
<Parameter name="deviceName">

输出参数，播放设备的设备名称。最大长度为 [MAX_DEVICE_ID_LENGTH_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-maxdeviceidlengthtype)。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicemanager_getrecordingdeviceinfo__return_values"></a>

### 返回值 [#返回值-19]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-17]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicemanager_getrecordingdeviceinfo2"></a>

<a id="ariaid-title22"></a>

## getRecordingDeviceInfo [2/2] [#getrecordingdeviceinfo-22]

获取音频采集设备信息及其类型。

<a id="api_iaudiodevicemanager_getrecordingdeviceinfo2__prototype"></a>

```cpp
virtual int getRecordingDeviceInfo(char deviceId[MAX_DEVICE_ID_LENGTH], char deviceName[MAX_DEVICE_ID_LENGTH], char deviceTypeName[MAX_DEVICE_ID_LENGTH]) = 0;
```

<a id="api_iaudiodevicemanager_getrecordingdeviceinfo2__detailed_desc"></a>

### 详情 [#详情-17]

该方法仅适用于 macOS。

<a id="api_iaudiodevicemanager_getrecordingdeviceinfo2__parameters"></a>

### 参数 [#参数-17]

<ParameterList>
<a id="deviceid-10"></a>
<Parameter name="deviceId">

输出参数，播放设备的设备 ID。最大长度为 [MAX_DEVICE_ID_LENGTH_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-maxdeviceidlengthtype)。

</Parameter>
<a id="devicename-7"></a>
<Parameter name="deviceName">

输出参数，播放设备的设备名称。最大长度为 [MAX_DEVICE_ID_LENGTH_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-maxdeviceidlengthtype)。

</Parameter>
<a id="devicetypename-3"></a>
<Parameter name="deviceTypeName">

输出参数，音频采集设备类型，如：built-in、USB、HDMI 等。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicemanager_getrecordingdeviceinfo2__return_values"></a>

### 返回值 [#返回值-20]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

<a id="api_iaudiodevicemanager_getrecordingdevicemute"></a>

<a id="ariaid-title23"></a>

## getRecordingDeviceMute [#getrecordingdevicemute]

获取当前音频采集设备静音状态。

<a id="api_iaudiodevicemanager_getrecordingdevicemute__prototype"></a>

```cpp
virtual int getRecordingDeviceMute(bool *mute) = 0;
```

<a id="api_iaudiodevicemanager_getrecordingdevicemute__parameters"></a>

### 参数 [#参数-18]

<ParameterList>
<a id="mute-1"></a>
<Parameter name="mute">

音频采集设备静音状态：

- `true`: 采集设备为静音状态。
- `false`: 采集设备为非静音状态。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicemanager_getrecordingdevicemute__return_values"></a>

### 返回值 [#返回值-21]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-18]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicemanager_getrecordingdevicevolume"></a>

<a id="ariaid-title24"></a>

## getRecordingDeviceVolume [#getrecordingdevicevolume]

获取音频采集设备音量。

<a id="api_iaudiodevicemanager_getrecordingdevicevolume__prototype"></a>

```cpp
virtual int getRecordingDeviceVolume(int *volume) = 0;
```

<a id="api_iaudiodevicemanager_getrecordingdevicevolume__detailed_desc"></a>

### 详情 [#详情-18]

:::note
注： 该方法仅适用于 Windows 平台。
:::

<a id="api_iaudiodevicemanager_getrecordingdevicevolume__parameters"></a>

### 参数 [#参数-19]

<ParameterList>
<a id="volume-2"></a>
<Parameter name="volume">

输出参数，音频采集设备音量，取值范围 [0,255]。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicemanager_getrecordingdevicevolume__return_values"></a>

### 返回值 [#返回值-22]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-19]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicecollection_isapplicationmute"></a>

<a id="ariaid-title25"></a>

## isApplicationMute [#isapplicationmute]

获取 App 当前的静音状态。

<a id="api_iaudiodevicecollection_isapplicationmute__prototype"></a>

```cpp
virtual int isApplicationMute(bool &mute) = 0;
```

<a id="api_iaudiodevicecollection_isapplicationmute__parameters"></a>

### 参数 [#参数-20]

<ParameterList>
<a id="mute-2"></a>
<Parameter name="mute">

App 当前是否静音：

- `true`: App 为静音状态。
- `false`: App 为非静音状态。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicecollection_isapplicationmute__return_values"></a>

### 返回值 [#返回值-23]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-20]

- [IAudioDeviceCollection](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicecollection)

<a id="api_iaudiodevicecollection_release"></a>

<a id="ariaid-title26"></a>

## release [#release]

释放 [IAudioDeviceCollection](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicecollection) 对象占用的所有资源。

<a id="api_iaudiodevicecollection_release__prototype"></a>

```cpp
virtual void release() = 0;
```

### 所属接口类 [#所属接口类-21]

- [IAudioDeviceCollection](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicecollection)

<a id="api_iaudiodevicemanager_release"></a>

<a id="ariaid-title27"></a>

## release [#release-1]

释放 [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager) 对象占用的所有资源。

<a id="api_iaudiodevicemanager_release__prototype"></a>

```cpp
virtual void release() = 0;
```

### 所属接口类 [#所属接口类-22]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicecollection_setapplicationmute"></a>

<a id="ariaid-title28"></a>

## setApplicationMute [#setapplicationmute]

设置是否将 App 静音。

<a id="api_iaudiodevicecollection_setapplicationmute__prototype"></a>

```cpp
virtual int setApplicationMute(bool mute) = 0;
```

<a id="api_iaudiodevicecollection_setapplicationmute__parameters"></a>

### 参数 [#参数-21]

<ParameterList>
<a id="mute-3"></a>
<Parameter name="mute">

是否将 App 设置为静音。

- `true`: 将 App 静音。
- `false`: 将 App 解除静音。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicecollection_setapplicationmute__return_values"></a>

### 返回值 [#返回值-24]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-23]

- [IAudioDeviceCollection](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicecollection)

<a id="api_iaudiodevicecollection_setapplicationvolume"></a>

<a id="ariaid-title29"></a>

## setApplicationVolume [#setapplicationvolume]

设置 App 音量。

<a id="api_iaudiodevicecollection_setapplicationvolume__prototype"></a>

```cpp
virtual int setApplicationVolume(int volume) = 0;
```

<a id="api_iaudiodevicecollection_setapplicationvolume__parameters"></a>

### 参数 [#参数-22]

<ParameterList>
<a id="volume-3"></a>
<Parameter name="volume">

App 的音量，取值范围为 [0,255]。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicecollection_setapplicationvolume__return_values"></a>

### 返回值 [#返回值-25]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-24]

- [IAudioDeviceCollection](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicecollection)

<a id="api_iaudiodevicecollection_setdevice"></a>

<a id="ariaid-title30"></a>

## setDevice [#setdevice]

指定音频设备。

<a id="api_iaudiodevicecollection_setdevice__prototype"></a>

```cpp
virtual int setDevice(const char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
```

<a id="api_iaudiodevicecollection_setdevice__detailed_desc"></a>

### 详情 [#详情-19]

该方法可以更改当前的音频路由，但不会改变系统默认的音频路由。假设系统默认的音频路由是扬声器 1，你在加入频道前调用该方法设置当前的音频路由为扬声器 2，如果在此时进行设备检测，SDK 会对扬声器 2 进行检测。检测结束后，当你加入频道时 SDK 依然会选择使用系统默认的音频路由，即扬声器 1。

<a id="api_iaudiodevicecollection_setdevice__parameters"></a>

### 参数 [#参数-23]

<ParameterList>
<a id="deviceid-11"></a>
<Parameter name="deviceId">

设备 ID。最大长度为 [MAX_DEVICE_ID_LENGTH_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-maxdeviceidlengthtype)。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicecollection_setdevice__return_values"></a>

### 返回值 [#返回值-26]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-25]

- [IAudioDeviceCollection](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicecollection)

<a id="api_iaudiodevicemanager_setloopbackdevice"></a>

<a id="ariaid-title31"></a>

## setLoopbackDevice [#setloopbackdevice]

指定声卡采集设备。

<a id="api_iaudiodevicemanager_setloopbackdevice__prototype"></a>

```cpp
virtual int setLoopbackDevice(const char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
```

<a id="api_iaudiodevicemanager_setloopbackdevice__detailed_desc"></a>

### 详情 [#详情-20]

SDK 默认采用当前的播放设备作为声卡采集设备，如果想要指定其他音频设备作为声卡采集设备，则调用该方法并设置 deviceId 为你想要指定的声卡采集设备。

该方法可以更改当前的音频采集设备，但不改变系统默认的音频采集设备。假设系统默认的音频采集设备是麦克风 1，你在加入频道前调用该方法设置当前的音频路由为声卡 1，如果在此时进行设备检测，SDK 会对声卡 1 做设备检测。检测结束后，当你加入频道时 SDK 依然会选择使用系统默认的音频采集设备，即麦克风 1。

:::note
注：

该方法仅适用于 Windows 和 macOS。

该方法适用的场景如下：

使用 App A 播放音乐，通过蓝牙耳机播放；同时使用 App B 进行视频会议，通过扬声器播放。

- 如果设置声卡采集设备为蓝牙耳机，则 SDK 会将 App A 中的音乐发布到远端。
- 如果设置声卡采集设备设置为扬声器，则 SDK 不会将 App A 中的音乐发布到远端。
- 如果设置声卡采集设备为蓝牙耳机后，又改用有线耳机播放 App A 中的音乐，则需要重新调用该方法，设置声卡采集设备为有线耳机，则 SDK 会继续将 App A 中的音乐发布到远端。
:::

<a id="api_iaudiodevicemanager_setloopbackdevice__parameters"></a>

### 参数 [#参数-24]

<ParameterList>
<a id="deviceid-12"></a>
<Parameter name="deviceId">

指定 SDK 的声卡采集设备。由 [enumeratePlaybackDevices](/zh-CN/api-reference/rtc/unreal-cpp/device-management/audio-device#api_iaudiodevicemanager_enumerateplaybackdevices) 获取。插拔设备不会影响 deviceId。

最大长度为 [MAX_DEVICE_ID_LENGTH_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-maxdeviceidlengthtype)。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicemanager_setloopbackdevice__return_values"></a>

### 返回值 [#返回值-27]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-26]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicemanager_setplaybackdevice"></a>

<a id="ariaid-title32"></a>

## setPlaybackDevice [#setplaybackdevice]

指定播放设备。

<a id="api_iaudiodevicemanager_setplaybackdevice__prototype"></a>

```cpp
virtual int setPlaybackDevice(const char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
```

<a id="api_iaudiodevicemanager_setplaybackdevice__detailed_desc"></a>

### 详情 [#详情-21]

:::caution
注意： 该方法仅适用于 Windows 和 macOS。
:::

该方法可以更改当前的音频路由，但不会改变系统默认的音频路由。假设系统默认的音频路由是扬声器 1，你在加入频道前调用该方法设置当前的音频路由为扬声器 2，如果在此时进行设备检测，SDK 会对扬声器 2 进行检测。检测结束后，当你加入频道时 SDK 依然会选择使用系统默认的音频路由，即扬声器 1。

<a id="api_iaudiodevicemanager_setplaybackdevice__parameters"></a>

### 参数 [#参数-25]

<ParameterList>
<a id="deviceid-13"></a>
<Parameter name="deviceId">

指定播放设备。由 [enumeratePlaybackDevices](/zh-CN/api-reference/rtc/unreal-cpp/device-management/audio-device#api_iaudiodevicemanager_enumerateplaybackdevices) 获取。插拔设备不会影响 deviceId。

最大长度为 [MAX_DEVICE_ID_LENGTH_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-maxdeviceidlengthtype)。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicemanager_setplaybackdevice__return_values"></a>

### 返回值 [#返回值-28]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-27]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicemanager_setplaybackdevicemute"></a>

<a id="ariaid-title33"></a>

## setPlaybackDeviceMute [#setplaybackdevicemute]

设置播放设备静音。

<a id="api_iaudiodevicemanager_setplaybackdevicemute__prototype"></a>

```cpp
virtual int setPlaybackDeviceMute(bool mute) = 0;
```

<a id="api_iaudiodevicemanager_setplaybackdevicemute__parameters"></a>

### 参数 [#参数-26]

<ParameterList>
<a id="mute-4"></a>
<Parameter name="mute">

是否设置播放设备为静音：

- `true`: 播放设备设为静音。
- `false`: 播放设备不设为静音。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicemanager_setplaybackdevicemute__return_values"></a>

### 返回值 [#返回值-29]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-28]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicemanager_setplaybackdevicevolume"></a>

<a id="ariaid-title34"></a>

## setPlaybackDeviceVolume [#setplaybackdevicevolume]

设置播放设备音量。

<a id="api_iaudiodevicemanager_setplaybackdevicevolume__prototype"></a>

```cpp
virtual int setPlaybackDeviceVolume(int volume) = 0;
```

<a id="api_iaudiodevicemanager_setplaybackdevicevolume__detailed_desc"></a>

### 详情 [#详情-22]

:::note
注： 该方法仅适用于 Windows 平台。
:::

<a id="api_iaudiodevicemanager_setplaybackdevicevolume__parameters"></a>

### 参数 [#参数-27]

<ParameterList>
<a id="volume-4"></a>
<Parameter name="volume">

播放设备音量。取值范围为 [0,255]。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicemanager_setplaybackdevicevolume__return_values"></a>

### 返回值 [#返回值-30]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-29]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicemanager_setrecordingdevice"></a>

<a id="ariaid-title35"></a>

## setRecordingDevice [#setrecordingdevice]

指定音频采集设备。

<a id="api_iaudiodevicemanager_setrecordingdevice__prototype"></a>

```cpp
virtual int setRecordingDevice(const char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
```

<a id="api_iaudiodevicemanager_setrecordingdevice__detailed_desc"></a>

### 详情 [#详情-23]

:::caution
注意： 该方法仅适用于 Windows 和 macOS。
:::

该方法可以更改当前的音频采集设备，但不改变系统默认的音频采集设备。假设系统默认的音频采集设备是麦克风 1，你在加入频道前调用该方法设置当前的音频路由为蓝牙耳机 1，如果在此时进行设备检测，SDK 会对蓝牙耳机 1 进行检测。检测结束后，当你加入频道时 SDK 依然会选择使用系统默认的音频采集设备，即麦克风 1。

<a id="api_iaudiodevicemanager_setrecordingdevice__parameters"></a>

### 参数 [#参数-28]

<ParameterList>
<a id="deviceid-14"></a>
<Parameter name="deviceId">

音频采集设备的 Device ID。可通过 [enumerateRecordingDevices](/zh-CN/api-reference/rtc/unreal-cpp/device-management/audio-device#api_iaudiodevicemanager_enumeraterecordingdevices) 获取。插拔设备不会影响 deviceId。

最大长度为 [MAX_DEVICE_ID_LENGTH_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-maxdeviceidlengthtype)。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicemanager_setrecordingdevice__return_values"></a>

### 返回值 [#返回值-31]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-30]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicemanager_setrecordingdevicemute"></a>

<a id="ariaid-title36"></a>

## setRecordingDeviceMute [#setrecordingdevicemute]

设置当前音频采集设备静音。

<a id="api_iaudiodevicemanager_setrecordingdevicemute__prototype"></a>

```cpp
virtual int setRecordingDeviceMute(bool mute) = 0;
```

<a id="api_iaudiodevicemanager_setrecordingdevicemute__parameters"></a>

### 参数 [#参数-29]

<ParameterList>
<a id="mute-5"></a>
<Parameter name="mute">

是否设置音频采集设备静音：

- `true`: 采集设备静音。
- `false`: 采集设备为非静音。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicemanager_setrecordingdevicemute__return_values"></a>

### 返回值 [#返回值-32]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-31]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicemanager_setrecordingdevicevolume"></a>

<a id="ariaid-title37"></a>

## setRecordingDeviceVolume [#setrecordingdevicevolume]

设置音频采集设备音量。

<a id="api_iaudiodevicemanager_setrecordingdevicevolume__prototype"></a>

```cpp
virtual int setRecordingDeviceVolume(int volume) = 0;
```

<a id="api_iaudiodevicemanager_setrecordingdevicevolume__detailed_desc"></a>

### 详情 [#详情-24]

该方法仅适用于 Windows 和 macOS。

<a id="api_iaudiodevicemanager_setrecordingdevicevolume__parameters"></a>

### 参数 [#参数-30]

<ParameterList>
<a id="volume-5"></a>
<Parameter name="volume">

音频采集设备音量。取值范围 [0,255]。0 代表无声，255 代表最大音量。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicemanager_setrecordingdevicevolume__return_values"></a>

### 返回值 [#返回值-33]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-32]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicemanager_startaudiodeviceloopbacktest"></a>

<a id="ariaid-title38"></a>

## startAudioDeviceLoopbackTest [#startaudiodeviceloopbacktest]

开始音频设备回路测试。

<a id="api_iaudiodevicemanager_startaudiodeviceloopbacktest__prototype"></a>

```cpp
virtual int startAudioDeviceLoopbackTest(int indicationInterval) = 0;
```

<a id="api_iaudiodevicemanager_startaudiodeviceloopbacktest__detailed_desc"></a>

### 详情 [#详情-25]

该方法测试音频采集和播放设备是否能正常工作。一旦测试开始，音频采集设备会采集本地音频，然后使用音频播放设备播放出来。SDK 会按设置的时间间隔触发两个 [onAudioVolumeIndication](/zh-CN/api-reference/rtc/unreal-cpp/audio/audio-basic#callback_irtcengineeventhandler_onaudiovolumeindication) 回调，分别报告音频采集设备（uid = 0）和音频播放设置（uid = 1）的音量信息。

:::caution
注意：

- 该方法仅适用于 Windows 和 macOS。
- 该方法在加入频道前后都可调用。
- 该方法仅支持主播角色调用。
- 该方法仅在本地进行音频设备测试，不涉及网络连接。
- 完成测试后，必须调用 [stopAudioDeviceLoopbackTest](/zh-CN/api-reference/rtc/unreal-cpp/device-management/audio-device#api_iaudiodevicemanager_stopaudiodeviceloopbacktest) 停止音频设备回路测试。
:::

<a id="api_iaudiodevicemanager_startaudiodeviceloopbacktest__parameters"></a>

### 参数 [#参数-31]

<ParameterList>
<a id="indicationinterval"></a>
<Parameter name="indicationInterval">

SDK 触发 onAudioVolumeIndication 回调的时间间隔，单位为毫秒。建议设置到大于 200 毫秒。不得少于 10 毫秒，否则会收不到 onAudioVolumeIndication 回调。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicemanager_startaudiodeviceloopbacktest__return_values"></a>

### 返回值 [#返回值-34]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-33]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicemanager_startplaybackdevicetest"></a>

<a id="ariaid-title39"></a>

## startPlaybackDeviceTest [#startplaybackdevicetest]

启动音频播放设备测试。

<a id="api_iaudiodevicemanager_startplaybackdevicetest__prototype"></a>

```cpp
virtual int startPlaybackDeviceTest(const char* testAudioFilePath) = 0;
```

<a id="api_iaudiodevicemanager_startplaybackdevicetest__detailed_desc"></a>

### 详情 [#详情-26]

该方法用于测试本地音频播放设备是否能正常工作。启动测试后，SDK 播放指定的音频文件，测试者如果能听到声音，说明播放设备能正常工作。

调用该方法后，SDK 会每隔 100 毫秒触发一次 [onAudioVolumeIndication](/zh-CN/api-reference/rtc/unreal-cpp/audio/audio-basic#callback_irtcengineeventhandler_onaudiovolumeindication) 回调，报告 uid = 1 及播放设备的音量信息。

该方法和 [startEchoTest](/zh-CN/api-reference/rtc/unreal-cpp/network#api_irtcengine_startechotest3) 的区别在于该方法检测本地的音频播放设备能否正常工作，后者可以检测音视频设备及网络是否正常。

:::caution
注意： 该方法需要在加入频道前调用。测试完成后，如需加入频道，请确保先调用 [stopPlaybackDeviceTest](/zh-CN/api-reference/rtc/unreal-cpp/device-management/audio-device#api_iaudiodevicemanager_stopplaybackdevicetest) 停止设备测试。
:::

<a id="api_iaudiodevicemanager_startplaybackdevicetest__parameters"></a>

### 参数 [#参数-32]

<ParameterList>
<a id="testaudiofilepath"></a>
<Parameter name="testAudioFilePath">

音频文件的绝对路径，路径字符串使用 UTF-8 编码格式。

- 支持文件格式: wav、mp3、m4a、aac。
- 支持文件采样率: 8000、16000、32000、44100、48000。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicemanager_startplaybackdevicetest__return_values"></a>

### 返回值 [#返回值-35]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-34]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicemanager_startrecordingdevicetest"></a>

<a id="ariaid-title40"></a>

## startRecordingDeviceTest [#startrecordingdevicetest]

启动音频采集设备测试。

<a id="api_iaudiodevicemanager_startrecordingdevicetest__prototype"></a>

```cpp
virtual int startRecordingDeviceTest(int indicationInterval) = 0;
```

<a id="api_iaudiodevicemanager_startrecordingdevicetest__detailed_desc"></a>

### 详情 [#详情-27]

该方法用于测试本地音频采集设备是否能正常工作。调用该方法后，SDK 会按设置的时间间隔触发 [onAudioVolumeIndication](/zh-CN/api-reference/rtc/unreal-cpp/audio/audio-basic#callback_irtcengineeventhandler_onaudiovolumeindication) 回调，报告 uid = 0 及采集设备的音量信息。

该方法和 [startEchoTest](/zh-CN/api-reference/rtc/unreal-cpp/network#api_irtcengine_startechotest3) 的区别在于该方法检测本地的音频采集设备能否正常工作，后者可以检测音视频设备及网络是否正常。

:::note
注： 该方法需要在加入频道前调用。测试完成后，如需加入频道，请确保先调用 [stopRecordingDeviceTest](/zh-CN/api-reference/rtc/unreal-cpp/device-management/audio-device#api_iaudiodevicemanager_stoprecordingdevicetest) 停止设备测试。
:::

<a id="api_iaudiodevicemanager_startrecordingdevicetest__parameters"></a>

### 参数 [#参数-33]

<ParameterList>
<a id="indicationinterval-1"></a>
<Parameter name="indicationInterval">

SDK 触发 [onAudioVolumeIndication](/zh-CN/api-reference/rtc/unreal-cpp/audio/audio-basic#callback_irtcengineeventhandler_onaudiovolumeindication) 回调的时间间隔，单位为毫秒，最小取值为 10，否则会收不到 onAudioVolumeIndication 回调，SDK 会返回错误码 `-2`。声网推荐你将该值设为 100。

</Parameter>
</ParameterList>

<a id="api_iaudiodevicemanager_startrecordingdevicetest__return_values"></a>

### 返回值 [#返回值-36]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

  - -2: 参数设置错误，请重新设置参数。

### 所属接口类 [#所属接口类-35]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicemanager_stopaudiodeviceloopbacktest"></a>

<a id="ariaid-title41"></a>

## stopAudioDeviceLoopbackTest [#stopaudiodeviceloopbacktest]

停止音频设备回路测试。

<a id="api_iaudiodevicemanager_stopaudiodeviceloopbacktest__prototype"></a>

```cpp
virtual int stopAudioDeviceLoopbackTest() = 0;
```

<a id="api_iaudiodevicemanager_stopaudiodeviceloopbacktest__detailed_desc"></a>

### 详情 [#详情-28]

:::caution
注意：

- 该方法仅适用于 Windows 和 macOS。
- 该方法在加入频道前后都可调用。
- 该方法仅支持主播角色调用。
- 在调用 [startAudioDeviceLoopbackTest](/zh-CN/api-reference/rtc/unreal-cpp/device-management/audio-device#api_iaudiodevicemanager_startaudiodeviceloopbacktest) 后，必须调用该方法停止音频设备回路测试。
:::

<a id="api_iaudiodevicemanager_stopaudiodeviceloopbacktest__return_values"></a>

### 返回值 [#返回值-37]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-36]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicemanager_stopplaybackdevicetest"></a>

<a id="ariaid-title42"></a>

## stopPlaybackDeviceTest [#stopplaybackdevicetest]

停止音频播放设备测试。

<a id="api_iaudiodevicemanager_stopplaybackdevicetest__prototype"></a>

```cpp
virtual int stopPlaybackDeviceTest() = 0;
```

<a id="api_iaudiodevicemanager_stopplaybackdevicetest__detailed_desc"></a>

### 详情 [#详情-29]

该方法用于停止音频播放设备测试。调用 [startPlaybackDeviceTest](/zh-CN/api-reference/rtc/unreal-cpp/device-management/audio-device#api_iaudiodevicemanager_startplaybackdevicetest) 后，必须调用该方法停止测试。

:::caution
注意： 该方法需要在加入频道前调用。
:::

<a id="api_iaudiodevicemanager_stopplaybackdevicetest__return_values"></a>

### 返回值 [#返回值-38]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-37]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="api_iaudiodevicemanager_stoprecordingdevicetest"></a>

<a id="ariaid-title43"></a>

## stopRecordingDeviceTest [#stoprecordingdevicetest]

停止音频采集设备测试。

<a id="api_iaudiodevicemanager_stoprecordingdevicetest__prototype"></a>

```cpp
virtual int stopRecordingDeviceTest() = 0;
```

<a id="api_iaudiodevicemanager_stoprecordingdevicetest__detailed_desc"></a>

### 详情 [#详情-30]

该方法用于停止音频采集设备测试。调用 [startRecordingDeviceTest](/zh-CN/api-reference/rtc/unreal-cpp/device-management/audio-device#api_iaudiodevicemanager_startrecordingdevicetest) 后，必须调用该方法停止测试。

:::note
注： 该方法需要在加入频道前调用。
:::

<a id="api_iaudiodevicemanager_stoprecordingdevicetest__return_values"></a>

### 返回值 [#返回值-39]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-38]

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_iaudiodevicemanager)

<a id="callback_irtcengineeventhandler_onaudiodevicestatechanged"></a>

<a id="ariaid-title44"></a>

## onAudioDeviceStateChanged [#onaudiodevicestatechanged]

音频设备变化回调。

<a id="callback_irtcengineeventhandler_onaudiodevicestatechanged__prototype"></a>

```cpp
virtual void onAudioDeviceStateChanged(const char* deviceId,
     int deviceType,
     int deviceState) {
     (void)deviceId;
     (void)deviceType;
     (void)deviceState;
     }
```

<a id="callback_irtcengineeventhandler_onaudiodevicestatechanged__detailed_desc"></a>

### 详情 [#详情-31]

<a id="callback_irtcengineeventhandler_onaudiodevicestatechanged__desc"></a>

提示系统音频设备状态发生改变，比如耳机被拔出。

:::note
注： 该方法仅适用于 Windows 和 macOS。
:::

<a id="callback_irtcengineeventhandler_onaudiodevicestatechanged__parameters"></a>

### 参数 [#参数-34]

<ParameterList>
<a id="deviceid-15"></a>
<Parameter name="deviceId">

设备 ID。

</Parameter>
<a id="devicetype"></a>
<Parameter name="deviceType">

设备类型定义。详见 [MEDIA_DEVICE_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-mediadevicetype)。

</Parameter>
<a id="devicestate"></a>
<Parameter name="deviceState">

设备状态，详见 [MEDIA_DEVICE_STATE_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-mediadevicestatetype)。

</Parameter>
</ParameterList>

### 所属接口类 [#所属接口类-39]

- [IRtcEngineEventHandler](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_irtcengineeventhandler)

<a id="callback_irtcengineeventhandler_onaudiodevicevolumechanged"></a>

<a id="ariaid-title45"></a>

## onAudioDeviceVolumeChanged [#onaudiodevicevolumechanged]

音频设备或 App 的音量发生改变回调。

<a id="callback_irtcengineeventhandler_onaudiodevicevolumechanged__prototype"></a>

```cpp
virtual void onAudioDeviceVolumeChanged(MEDIA_DEVICE_TYPE deviceType, int volume, bool muted) {
    (void)deviceType;
    (void)volume;
    (void)muted;
  }
```

<a id="callback_irtcengineeventhandler_onaudiodevicevolumechanged__detailed_desc"></a>

### 详情 [#详情-32]

当音频播放、采集设备或 App 的音量发生改变时，会触发该回调。

:::note
注： 该回调仅适用于 Windows 和 macOS。
:::

<a id="callback_irtcengineeventhandler_onaudiodevicevolumechanged__parameters"></a>

### 参数 [#参数-35]

<ParameterList>
<a id="devicetype-1"></a>
<Parameter name="deviceType">

设备类型定义。详见 [MEDIA_DEVICE_TYPE](/zh-CN/api-reference/rtc/unreal-cpp/enum-mediadevicetype)。

</Parameter>
<a id="volume-6"></a>
<Parameter name="volume">

音量。范围为 [0,255]。

</Parameter>
<a id="muted"></a>
<Parameter name="muted">

音频设备是否为静音状态：

- `true`: 音频设备已静音。
- `false`: 音频设备未被静音。

</Parameter>
</ParameterList>

### 所属接口类 [#所属接口类-40]

- [IRtcEngineEventHandler](/zh-CN/api-reference/rtc/unreal-cpp/rtc-interface-class#class_irtcengineeventhandler)
