跳到主要内容

可捕获声波

概述

可捕获声波源自流式声波。它支持从麦克风等输入设备捕获音频数据并进行回放,具有与导入声波相同的功能(包括倒带、在 SoundCue 中使用等)。你甚至可以同时捕获和播放音频,没有任何限制。

提示

关于语音活动检测(VAD),请参阅此页面

备注

在 iOS 和 Android 上,可捕获声波会在开始捕获时自动请求麦克风权限。

基本用法

创建可捕获声波

首先,你应该创建一个可捕获声波。

创建可捕获声波节点

注意

您应将可捕获的声波视为强引用,以防止过早销毁(例如,在 Blueprints 中将其分配给单独的变量,或在 C++ 中使用 UPROPERTY())。

获取可用的输入设备

要使用此功能,您需要首先获取所有可用于捕获的音频输入设备。

获取可用音频输入设备节点

开始和停止捕获

获取可用设备后,您可以开始从输入设备捕获音频数据,并在需要时停止。

开始和停止捕获节点

信息

DeviceId 是设备在可用设备数组中的索引,该数组通过上一步获取。要使用默认音频输入设备,请在 Blueprints 中传递 -1 或在 C++ 中传递 Audio::DefaultDeviceIndex(等于 INDEX_NONE),因为有时零索引并非默认设备。

检查捕获状态

您可以检查声波当前是否正在捕获音频:

Is Capturing node

高级功能

静音和取消静音捕获

您可以选择静音或取消静音声音捕获,以防止音频数据累积,而不会中断捕获过程。

切换静音节点

性能优化

这在频繁切换捕获时非常有用,因为通过 StartCapture 开始录制可能会在引擎端造成轻微的卡顿。您应该首先启动捕获本身,然后才将其静音/取消静音。

如果您的目标是消除轻微的冻结,可以考虑在冻结可能微不足道的时候开始捕获。例如,您可以在游戏加载屏幕期间开始捕获,之后立即将可捕获声波静音,然后在需要捕获音频数据时取消可捕获声波的静音,从而避免任何卡顿。

完整示例

以下是使用可捕获声波的完整实现示例:

使用可捕获声波的示例