Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
OpenAL API 声明设置偏移量仍会导致声音循环回零以用于循环源。但是有没有办法循环并且仍然以某种方式有偏移量?
我有一个 mp3,由于它在文件开头包含带有信息的标头,因此在倒带时循环会有一个小的但值得注意的延迟。
如果没有,是否还有其他不包含这些空标头的压缩格式?
也许您的延迟也可能代表解压缩 MP3 数据的时间?如果您的数据小到可以循环播放,您是否可以使用 API 将 MP3 解压缩为 PCM,然后将未压缩的数据提供给 AL?
另一种选择:您不必只使用一个缓冲区。您可以使用 alSourceQueueBuffers() 将它们排队。当您以这种方式进行流式传输时,AL 可以立即从一个缓冲区的末尾移动到下一个缓冲区的开头。因此,您可以将两个或三个缓冲区的数据排入队列,然后轮询源以查看第一个已被消耗的时间,然后将另一个排入队列。基本上,这将使您对循环负责。