2

我正在使用 openal 学习音频并尝试将 ogg 文件加载到内存中,以便可以使用 openal 播放它们。我一直在寻找一个库来加载 ogg 文件,我找到的最好的是这个,它没有依赖关系。但是文档很乱,我在网上找不到像样的教程示例。我想知道的是如何加载一个 ogg 并获得一些我可以实际发送到 openal 缓冲区的东西。

问:如果我有这个电话:

stb_vorbis_decode_filename(const char *filename, int *channels, int *sample_rate, short **output);

它应该解码“文件名”并将数据存储到“输出”中。所以我可以将它发送到 openal 对吗? 这不是缺乏研究,经过数小时的阅读,我无法真正了解它是如何工作的。如果有另一个库可以轻松加载 ogg 文件,请告诉我。

谢谢!

4

1 回答 1

1

你试过了吗?你得到了什么结果/错误?也许是这样的:

int channels;
int sample_rate;
short * output;
int rc = stb_vorbis_decode_filename("somefile.ogg", &channels, &sample_rate, &output);
if (rc == -1) fprintf(stderr, "oops\n");
于 2015-04-15T17:20:22.600 回答