循环OpenAL源与偏移量

时间:2010-02-15 22:40:16

标签: audio mp3 openal

OpenAL API声明设置偏移量仍会导致声音循环回零以循环源。但有没有办法循环,仍然有某种偏移?

我有一个mp3,因为它包含文件开头的信息标题,所以当它倒带时,循环会有一个很小但很明显的延迟。

如果没有,是否有其他压缩格式不包含这些空标题?

1 个答案:

答案 0 :(得分:1)

也许您的延迟也可能代表解压缩MP3数据的时间?如果您的数据足够小以至于无论如何都可以循环,您是否可以使用API​​将MP3解压缩为PCM,然后将未压缩的数据提供给AL?

另一种选择:您不必只使用一个缓冲区。您可以使用alSourceQueueBuffers()将它们排队。当您以这种方式传输时,AL可以立即从一个缓冲区的末尾移动到下一个缓冲区的开头。因此,您可以将两个或三个缓冲区的数据排入队列,然后轮询源以查看第一个已被占用的时间,并将另一个数据库排入队列。基本上,这会让你负责循环。