跳到主要内容

导入音频

概述

在运行时导入音频的过程可以分解为以下几个步骤:

  1. 创建一个运行时音频导入器
  2. 绑定到所需的委托(OnProgressOnResult
  3. 从文件或缓冲区导入音频
  4. 播放从 OnResult 委托获取的导入后的音波(更多信息请参见此处
重要提示

请确保 Runtime Audio ImporterSound Wave 实例不会因过早的垃圾回收而被销毁,可以通过使用 UPROPERTY()TStrongObjectPtr 或任何其他能防止对象被销毁的方法将它们分配给单独的变量来保持对它们的强引用。

支持的音频格式

Runtime Audio Importer 支持导入以下音频格式:

格式描述
MP3MPEG-1/2/2.5 音频层 I/II/III
WAV波形音频文件格式
FLAC免费无损音频编解码器
OGG VORBIS包含 Vorbis 音频的 Ogg 容器
OGG OPUS包含 Opus 音频的 Ogg 容器
BINKBink Audio
RAW (PCM)未压缩的脉冲编码调制音频数据(Int8UInt8Int16UInt16Int32UInt32Float32
提示

导入音频时,您可以明确指定格式,也可以根据文件扩展名或内容使用自动格式检测。

流式音频导入

对于音频数据增量接收的流式场景(例如,来自服务器、实时捕获或网络流),请考虑使用 Streaming Sound Waves

此方法提供了一种连续的方式将音频数据追加到同一音波的缓冲区,使其适用于实时流或分块处理的大文件。更多详情请参阅 Streaming Sound Wave 文档

基本实现步骤

1. 创建运行时音频导入器

首先,您需要创建一个 Runtime Audio Importer 对象。您应确保垃圾回收器将其视为强引用。

创建运行时音频导入器节点

2. 绑定到 OnProgress 委托

要跟踪导入音频数据的进度,您可以绑定到 OnProgress (蓝图) / OnProgressNative (C++) 委托。

绑定到 On Progress 委托的示例

提示

这将允许您监控进度,例如,实现一个加载屏幕。

3. 绑定到 OnResult 委托

要在音频数据导入过程完成时收到通知并访问生成的声音波形的引用,您必须绑定到 OnResult (蓝图) / OnResultNative (C++) 委托。

绑定到 On Result 委托的示例

注意

确保导入的声波被垃圾回收器视为强引用,以防止不必要的过早垃圾回收。这可以通过在 Blueprints 中将其作为单独的变量来实现。

4. 开始音频导入

通过调用相关函数开始音频导入过程,该函数可以处理压缩和未压缩的音频数据格式。

导入音频节点示例

实用函数

查找音频文件

您可以扫描目录以查找支持的音频文件:

Scan Directory For Audio Files node

完整示例

以下是一个导入音频的完整实现示例:

完整示例