# 音频设备管理 (/zh-CN/api-reference/rtc/unreal-blueprint/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
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	UAudioDeviceCollection* EnumeratePlaybackDevices();
```

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

### 详情 [#详情]

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

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

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

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

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

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

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-blueprint/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
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	UAudioDeviceCollection* EnumerateRecordingDevices();
```

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

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

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

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

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

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

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

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

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-blueprint/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
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	int FollowSystemLoopbackDevice(bool enable);
```

<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)了解详情和解决建议。

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

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

## FollowSystemPlaybackDevice [#followsystemplaybackdevice]

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

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	int FollowSystemPlaybackDevice(bool enable);
```

<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)了解详情和解决建议。

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

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-blueprint/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
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	int FollowSystemRecordingDevice(bool enable);
```

<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)了解详情和解决建议。

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

- [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-blueprint/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
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceCollection")
	int GetApplicationVolume(int & volume);
```

<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)了解详情和解决建议。

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

- [IAudioDeviceCollection](/zh-CN/api-reference/rtc/unreal-blueprint/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
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int GetAudioDeviceInfo(FDeviceInfo& deviceInfo);
```

<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">

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

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

</Parameter>
</ParameterList>

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

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

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

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

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

<a id="api_irtcengine_getaudiodevicemanager"></a>

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

## GetAgoraAudioDeviceManager [#getagoraaudiodevicemanager]

获取 [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-blueprint/rtc-interface-class#class_iaudiodevicemanager) 对象，以管理音频设备。

<a id="api_irtcengine_getaudiodevicemanager__prototype"></a>

```cpp
UFUNCTION(BlueprintPure, Category = "Agora|IAudioDeviceManager")
	static UAgoraBPuAudioDeviceManager* GetAgoraAudioDeviceManager();
```

<a id="api_irtcengine_getaudiodevicemanager__return_values"></a>

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

一个 [IAudioDeviceManager](/zh-CN/api-reference/rtc/unreal-blueprint/rtc-interface-class#class_iaudiodevicemanager) 对象。

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

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

## GetCount [#getcount]

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

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

```cpp
UFUNCTION(BlueprintPure, Category = "Agora|IAudioDeviceCollection")
int GetCount();
```

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

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

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

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

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

语音设备数目。

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

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

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

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

## GetDefaultDevice [#getdefaultdevice]

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

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceCollection")
	int GetDefaultDevice(FString& deviceName, FString& deviceId);
```

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

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

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

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

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

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

输出参数，系统默认的音频设备名称。

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

输出参数，系统默认的音频设备 ID。

</Parameter>
</ParameterList>

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

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

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

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

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

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

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

## GetDevice [#getdevice]

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

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceCollection")
int GetDevice(int index, FString& deviceName, FString& deviceId);
```

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

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

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

该方法仅适用于 Windows 和 macOS。

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

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

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

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

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

输出参数，设备名称。

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

输出参数，设备 ID。

</Parameter>
</ParameterList>

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

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

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

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

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

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

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

## GetLoopbackDevice [#getloopbackdevice]

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

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	int GetLoopbackDevice(FString & deviceId);
```

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

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

该方法仅适用于 Windows 和 macOS。

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

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

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

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

</Parameter>
</ParameterList>

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

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

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

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

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

## GetPlaybackDevice [#getplaybackdevice]

获取当前音频播放设备。

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	int GetPlaybackDevice(FString& deviceId);
```

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

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

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

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

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

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

输出参数，当前音频播放设备的设备 ID。

</Parameter>
</ParameterList>

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

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

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

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

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

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

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

## GetPlaybackDeviceInfo [#getplaybackdeviceinfo]

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

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	int GetPlaybackDeviceInfo(FString& deviceId, FString& deviceName, FString& deviceTypeName);
```

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

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

该方法仅适用于 macOS。

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

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

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

输出参数，播放设备的设备 ID。

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

输出参数，播放设备的设备名称。

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

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

</Parameter>
</ParameterList>

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

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

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

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

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

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

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

## GetPlaybackDeviceMute [#getplaybackdevicemute]

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

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	int GetPlaybackDeviceMute(bool& mute);
```

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

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

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

播放设备静音状态：

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

</Parameter>
</ParameterList>

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

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

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

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

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

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

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

## GetPlaybackDeviceVolume [#getplaybackdevicevolume]

获取播放设备音量。

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	int GetPlaybackDeviceVolume(int& volume);
```

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

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

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

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

</Parameter>
</ParameterList>

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

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

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

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

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

## GetRecordingDevice [#getrecordingdevice]

获取当前音频采集设备。

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	int GetRecordingDevice(FString& deviceId);
```

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

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

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

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

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

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

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

</Parameter>
</ParameterList>

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

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

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

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

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

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

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

## GetRecordingDeviceInfo [#getrecordingdeviceinfo]

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

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	int GetRecordingDeviceInfo(FString& deviceId, FString& deviceName, FString& deviceTypeName);
```

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

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

该方法仅适用于 macOS。

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

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

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

输出参数，播放设备的设备 ID。

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

输出参数，播放设备的设备名称。

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

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

</Parameter>
</ParameterList>

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

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

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

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

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

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

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

## GetRecordingDeviceMute [#getrecordingdevicemute]

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

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	int GetRecordingDeviceMute(bool& mute);
```

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

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

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

音频采集设备静音状态：

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

</Parameter>
</ParameterList>

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

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

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

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

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

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

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

## GetRecordingDeviceVolume [#getrecordingdevicevolume]

获取音频采集设备音量。

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	int GetRecordingDeviceVolume(int& volume);
```

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

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

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

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

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

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

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

</Parameter>
</ParameterList>

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

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

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

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

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

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

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

## IsApplicationMute [#isapplicationmute]

获取 App 当前的静音状态。

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceCollection")
	int IsApplicationMute(bool mute);
```

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

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

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

App 当前是否静音：

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

</Parameter>
</ParameterList>

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

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

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

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

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

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

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

## Release [#release]

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

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceCollection")
void Release();
```

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

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

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

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

## Release [#release-1]

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

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
void Release();
```

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

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

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

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

## SetApplicationMute [#setapplicationmute]

设置是否将 App 静音。

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceCollection")
	int SetApplicationMute(bool mute);
```

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

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

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

是否将 App 设置为静音。

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

</Parameter>
</ParameterList>

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

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

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

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

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

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

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

## SetApplicationVolume [#setapplicationvolume]

设置 App 音量。

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceCollection")
	int SetApplicationVolume(int volume);
```

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

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

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

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

</Parameter>
</ParameterList>

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

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

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

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

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

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

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

## SetDevice [#setdevice]

指定音频设备。

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceCollection")
int SetDevice(const FString & deviceId);
```

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

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

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

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

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

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

设备 ID。

</Parameter>
</ParameterList>

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

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

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

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

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

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

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

## SetLoopbackDevice [#setloopbackdevice]

指定声卡采集设备。

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	int SetLoopbackDevice(const FString & deviceId);
```

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

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

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>

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

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

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

</Parameter>
</ParameterList>

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

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

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

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

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

## SetPlaybackDevice [#setplaybackdevice]

指定播放设备。

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	int SetPlaybackDevice(const FString & deviceId);
```

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

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

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

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

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

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

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

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

</Parameter>
</ParameterList>

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

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

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

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

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

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

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

## SetPlaybackDeviceMute [#setplaybackdevicemute]

设置播放设备静音。

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	int SetPlaybackDeviceMute(bool mute);
```

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

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

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

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

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

</Parameter>
</ParameterList>

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

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

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

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

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

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

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

## SetPlaybackDeviceVolume [#setplaybackdevicevolume]

设置播放设备音量。

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	int SetPlaybackDeviceVolume(int volume);
```

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

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

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

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

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

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

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

</Parameter>
</ParameterList>

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

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

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

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

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

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

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

## SetRecordingDevice [#setrecordingdevice]

指定音频采集设备。

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	int SetRecordingDevice(const FString & deviceId);
```

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

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

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

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

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

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

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

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

</Parameter>
</ParameterList>

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

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

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

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

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

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

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

## SetRecordingDeviceMute [#setrecordingdevicemute]

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

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	int SetRecordingDeviceMute(bool mute);
```

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

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

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

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

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

</Parameter>
</ParameterList>

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

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

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

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

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

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

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

## SetRecordingDeviceVolume [#setrecordingdevicevolume]

设置音频采集设备音量。

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	int SetRecordingDeviceVolume(int volume);
```

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

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

该方法仅适用于 Windows 和 macOS。

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

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

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

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

</Parameter>
</ParameterList>

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

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

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

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

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

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

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

## StartAudioDeviceLoopbackTest [#startaudiodeviceloopbacktest]

开始音频设备回路测试。

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	int StartAudioDeviceLoopbackTest(int indicationInterval);
```

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

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

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

:::caution
注意：

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

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

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

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

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

</Parameter>
</ParameterList>

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

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

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

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

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

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

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

## StartPlaybackDeviceTest [#startplaybackdevicetest]

启动音频播放设备测试。

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	int StartPlaybackDeviceTest(const FString & testAudioFilePath);
```

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

## StartRecordingDeviceTest [#startrecordingdevicetest]

启动音频采集设备测试。

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	int StartRecordingDeviceTest(int indicationInterval);
```

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

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

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

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

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

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

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

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

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

</Parameter>
</ParameterList>

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

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

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

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

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

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

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

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

## StopAudioDeviceLoopbackTest [#stopaudiodeviceloopbacktest]

停止音频设备回路测试。

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	int StopAudioDeviceLoopbackTest();
```

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

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

:::caution
注意：

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

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

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

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

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

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

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

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

## StopPlaybackDeviceTest [#stopplaybackdevicetest]

停止音频播放设备测试。

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	int StopPlaybackDeviceTest();
```

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

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

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

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

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

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

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

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

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

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

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

## StopRecordingDeviceTest [#stoprecordingdevicetest]

停止音频采集设备测试。

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IAudioDeviceManager")
	int StopRecordingDeviceTest();
```

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

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

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

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

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

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

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

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

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

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

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

## OnAudioDeviceStateChanged [#onaudiodevicestatechanged]

音频设备变化回调。

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

```cpp
UFUNCTION(BlueprintNativeEvent, Category = "Agora|Event")
	void OnAudioDeviceStateChanged(const FString& deviceId, int deviceType, int deviceState);
```

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

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

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

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

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

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

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

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

设备 ID。

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

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

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

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

</Parameter>
</ParameterList>

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

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

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

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

## OnAudioDeviceVolumeChanged [#onaudiodevicevolumechanged]

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

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

```cpp
UFUNCTION(BlueprintNativeEvent, Category = "Agora|Event")
	void OnAudioDeviceVolumeChanged(FENUMWRAP_MEDIA_DEVICE_TYPE deviceType, int volume, bool muted);
```

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

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

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

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

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

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

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

设备类型定义。详见 [FENUMWRAP_MEDIA_DEVICE_TYPE](/zh-CN/api-reference/rtc/unreal-blueprint/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>

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

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