导入音频
概述
在运行时导入音频的过程可以分为以下几个步骤:
- 创建运行时音频导入器
- 绑定所需的委托(OnProgress 和 OnResult)
- 从文件或缓冲区导入音频
- 播放从 OnResult 委托获取的导入音效(更多信息请参见此处)
重要提示
请确保 Runtime Audio Importer 和 Sound Wave 实例不会因垃圾回收而提前被销毁,可以通过使用 UPROPERTY()、TStrongObjectPtr 或其他防止对象被销毁的方法将它们分配给单独的变量来保持硬引用。
支持的音频格式
Runtime Audio Importer 支持导入以下音频格式:
格式 | 描述 |
---|---|
MP3 | MPEG-1/2/2.5 音频层 I/II/III |
WAV | 波形音频文件格式 |
FLAC | 免费无损音频编解码器 |
OGG VORBIS | 包含 Vorbis 音频的 Ogg 容器 |
OGG OPUS | 包含 Opus 音频的 Ogg 容器 |
BINK | Bink 音频 |
RAW (PCM) | 未压缩的脉冲编码调制音频数据(Int8、UInt8、Int16、UInt16、Int32、UInt32、Float32) |
提示
导入音频时,您可以显式指定格式,也可以根据文件扩展名或内容自动检测格式。
流式音频导入
对于音频数据是增量接收的场景(例如来自服务器、实时捕获或网络流),请考虑使用 Streaming Sound Waves。
此方法 提供了一种连续的方式将音频数据追加到同一音效的缓冲区中,适用于实时流或分块处理的大文件。详情请参阅流式音效文档。
基本实现步骤
1. 创建运行时音频导入器
首先,您需要创建一个 Runtime Audio Importer 对象。您应确保垃圾回收器将其视为强引用。
- 蓝图
- C++
Header, in the UCLASS declaration (.h)
// UPROPERTY() is used here to prevent the object from being prematurely garbage collected
UPROPERTY()
class URuntimeAudioImporterLibrary* Importer;
Source file, in the function where you want to create the importer (.cpp)
Importer = URuntimeAudioImporterLibrary::CreateRuntimeAudioImporter();
2. 绑定到 OnProgress 委托
要跟踪音频数据导入的进度,您可以绑定到 OnProgress
(Blueprints) / OnProgressNative
(C++) 委托。
- Blueprint
- C++