可捕获声波
概述
可捕获声波派生自流式声波。它支持从麦克风等输入设备捕获音频数据并进行回放,具有与导入声波相同的功能(包括倒放、在SoundCue中使用等)。您甚至可以同时捕获和播放音频,没有任何限制。
提示
关于语音活动检测(VAD),请参阅此页面。
备注
在iOS和Android平台上,可捕获声波会在开始捕获时自动请求麦克风权限。
基础用法
创建可捕获声波
首先需要创建一个可捕获声波。
- 蓝图
- C++
UCapturableSoundWave* CapturableSoundWave = UCapturableSoundWave::CreateCapturableSoundWave();
注意
您应将可捕获的声波视为强引用以防止提前销毁(例如通过将其赋值给蓝图中的独立变量或使用C++ 中的UPROPERTY()
)。
获取可用输入设备
要使用此功能,您需要先获取所有可用于捕获的音频输入设备。
- Blueprint
- C++
UCapturableSoundWave::GetAvailableAudioInputDevices(FOnGetAvailableAudioInputDevicesResultNative::CreateWeakLambda(this, [](const TArray<FRuntimeAudioInputDeviceInfo>& AvailableDevices)
{
// Handle the result
}));
开始与停止捕获
获取可用设备后,您可以开始从输入设备捕获音频数据,并在需要时停止捕获。
- Blueprint
- C++
// Assuming CapturableSoundWave is a UE reference to a UCapturableSoundWave object (or its derived type)
// Start capturing audio data from the input device with the specified device ID (0 in this case)
CapturableSoundWave->StartCapture(0);
// Stop capturing audio data
CapturableSoundWave->StopCapture();
信息
DeviceId 是设备在可用设备数组中的索引,该数组通过前一步骤获取。
检查捕获状态
您可以检查当前是否正在捕获声波音频:
- Blueprint
- C++
// Assuming CapturableSoundWave is a reference to a UCapturableSoundWave object
bool bIsCapturing = CapturableSoundWave->IsCapturing();