这个项目能做什么
FAudio 是微软 DirectX 音频运行时库的开源重实现,专为 FNA 项目开发。其既定目标是实现完整的行为准确性,而不仅仅是提供兼容的 API 表面,以便针对原始库编写的软件在开放平台上表现相同。
范围
该项目涵盖多个相关音频 API:
- XAudio2,低级音频混音和播放 API
- X3DAudio,空间音频辅助库
- XAPO,跨平台音频处理对象接口
- XACT3,高级音频创作工具运行时
预期用途
FAudio 旨在支持 FNA 的 Audio 和 Media 命名空间。应用程序通过 FAudio#(位于仓库 csharp/ 目录中的 C# 绑定)访问它,使其可从基于 .NET 的游戏代码中使用。
依赖项
FAudio 仅依赖 SDL 3.2.0 或更高版本。README 指出它从不显式使用 C 运行时,这保持了较小的依赖足迹,并使跨平台行为更可预测。
构建
构建说明因目标而异:
- 在类 Unix 系统上,项目使用 CMake:创建构建目录,在源树上运行 cmake,然后运行 make。
- 在 Windows 上,visualc/ 目录中提供了构建文件。
- 对于 Xbox GDK,请参阅 visualc-gdk/。
- 对于 iOS、tvOS 和 macOS 通用二进制文件,请参阅 Xcode/ 目录。
测试
FAudio 附带单元测试,这些测试记录了 XAudio2 的行为,旨在针对 FAudio 运行以确认匹配行为。这些测试默认不构建;设置 BUILD_TESTS=1 可启用它们,之后可以执行 faudio_tests 二进制文件。tests/ 中的单独 Makefile 构建 Windows 可执行文件(需要 mingw-w64),以便针对真实 XAudio2 实现运行相同测试进行比较。
许可证和社区
FAudio 以 zlib 许可证发布。问题和补丁通过项目的 GitHub 仓库处理,项目网站托管在 fna-xna.github.io。
评论
0 评分人数达到10人后显示
登录后参与讨论。