# AudioLoader::Load ## 方法签名 ```cpp 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*` 指针,失败时包含错误信息字符串。 ## 示例 ```cpp #include #include using namespace XCEngine::Resources; AudioLoader loader; LoadResult result = loader.Load("assets/audio/bgm_music.ogg"); if (result.IsSuccess()) { AudioClip* audioClip = result.GetResource(); printf("Loaded: %s\n", audioClip->m_name.CStr()); printf("Format: %d\n", static_cast(audioClip->GetAudioFormat())); printf("Size: %zu bytes\n", audioClip->m_memorySize); } else { printf("Error: %s\n", result.GetError().CStr()); } ``` ## 注意事项 - 当前实现 `ParseWAVData()` 方法为空,WAV 格式解析逻辑尚未完成 - `settings` 参数当前版本未使用,保留接口兼容性