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

59 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 <XCEngine/Resources/AudioClip/AudioLoader.h>
#include <XCEngine/Core/Asset/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` 参数当前版本未使用,保留接口兼容性