我通过openal学习音频并尝试将ogg文件加载到内存中,这样我就可以用openal来播放它们。我一直在搜索一个库来加载ogg文件,我找到的最好的文件是this one,它没有依赖。但文档很混乱,我无法在网上找到一个体面的教程示例。 我想知道的是如何加载ogg并获得我可以实际发送到openal缓冲区的东西。
问:如果我有这个电话:
stb_vorbis_decode_filename(const char *filename, int *channels, int *sample_rate, short **output);
它应解码" filename"并将数据存储到"输出"。所以我可以将它发送到公开的权利吗? 它并不缺乏研究,经过几个小时的阅读后,我无法真正了解其运作方式。如果有另一个库可以轻松加载ogg文件,请告诉我。
谢谢!
答案 0 :(得分: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");