2010-02-15 69 views
1

OpenAL API指出,设置偏移量仍然会导致声音循环返回到零以获得循环源代码。但是有没有办法循环,并仍然有一个偏移量?带偏移的Loop OpenAL源代码

我有一个mp3,并且由于它包含文件头部的信息头部,所以在回卷时有一个很小的但是明显的循环延迟。

如果没有,是否还有其他压缩格式不包含这些空头文件?

+0

我结束了使用核心音频和音频单元,因为我想做更复杂的东西。 – hwaxxer 2011-05-13 14:28:55

回答

1

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

另一种选择:您不必只使用一个缓冲区。你可以用alSourceQueueBuffers()将它们排队。以这种方式进行流式处理时,AL可以从一个缓冲区的末尾立即移动到下一个缓冲区的起点。因此,您可以排列两到三个缓冲区的数据,然后轮询来源以查看第一个消耗的时间,然后再排队。基本上,这会让你对循环负责。