跳到主要内容

导入音频

概述

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

  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 音频
RAW (PCM)未压缩的脉冲编码调制音频数据(Int8UInt8Int16UInt16Int32UInt32Float32
提示

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

流式音频导入

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

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

基本实现步骤

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

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

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

2. 绑定到 OnProgress 委托

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

绑定到 On Progress �委托的示例

提示

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

3. 绑定到 OnResult 委托

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

绑定到 On Result 委托的示例

注意

请确保导入的声波被垃圾回收器视为强引用,以防止意外的过早垃圾回收。可以通过将其作为单独变量放置在蓝图中实现。

4. 开始音频导入

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

导�入音频节点示例

实用函数

查找音频文件

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

Scan Directory For Audio Files 节点

完整示例

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

完整示例