Files
XCEngine/docs/api/resources/audio-loader/load.md

1.7 KiB
Raw Blame History

AudioLoader::Load

方法签名

LoadResult Load(const Containers::String& path, const ImportSettings* settings = nullptr) override;

详细描述

从指定路径加载音频文件,读取文件数据后自动检测音频格式,并创建包含完整音频数据的 AudioClip 对象。

加载流程:

  1. 调用 ReadFileData(path) 读取文件数据
  2. 若读取失败,返回包含错误信息的 LoadResult
  3. 调用 DetectAudioFormat() 检测音频格式
  4. 创建 AudioClip 对象并设置路径、名称、GUID
  5. 调用 SetAudioFormat()SetAudioData() 设置音频属性
  6. 计算内存占用并返回成功结果

参数

参数 类型 描述
path const Containers::String& 音频文件的完整或相对路径
settings const ImportSettings* 导入设置(当前版本未使用,始终为 nullptr

返回值

LoadResult - 成功时包含 AudioClip* 指针,失败时包含错误信息字符串。

示例

#include "Resources/AudioLoader.h"
#include "Resources/ResourceManager.h"

using namespace XCEngine::Resources;

AudioLoader loader;
LoadResult result = loader.Load("assets/audio/bgm_music.ogg");

if (result.IsSuccess()) {
    AudioClip* audioClip = result.GetResource<AudioClip>();
    
    printf("Loaded: %s\n", audioClip->m_name.CStr());
    printf("Format: %d\n", static_cast<int>(audioClip->GetAudioFormat()));
    printf("Size: %zu bytes\n", audioClip->m_memorySize);
} else {
    printf("Error: %s\n", result.GetError().CStr());
}

注意事项

  • 当前实现 ParseWAVData() 方法为空WAV 格式解析逻辑尚未完成
  • settings 参数当前版本未使用,保留接口兼容性