Audio 带偏移量的循环开放源代码

Audio 带偏移量的循环开放源代码,audio,mp3,openal,Audio,Mp3,Openal,OpenALAPI声明设置偏移量仍然会导致声音循环回零,以循环源。但是,有没有一种方法可以循环并以某种方式保持偏移 我有一个mp3,因为它在文件的开头包含了信息头,所以当它倒带时,在循环中有一个小的,但可以注意到的延迟 如果没有,是否有其他压缩格式不包含这些空标题?可能您的延迟也代表了解压缩MP3数据的时间?如果您的数据小到可以循环,您是否可以使用API将MP3解压缩到PCM,然后将未压缩的数据馈送到AL 另一种选择:您不必只使用一个缓冲区。您可以使用alSourceQueueBuffers()

OpenALAPI声明设置偏移量仍然会导致声音循环回零,以循环源。但是,有没有一种方法可以循环并以某种方式保持偏移

我有一个mp3,因为它在文件的开头包含了信息头,所以当它倒带时,在循环中有一个小的,但可以注意到的延迟


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

可能您的延迟也代表了解压缩MP3数据的时间?如果您的数据小到可以循环,您是否可以使用API将MP3解压缩到PCM,然后将未压缩的数据馈送到AL


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

也许你的延迟也代表了解压缩MP3数据的时间?如果您的数据小到可以循环,您是否可以使用API将MP3解压缩到PCM,然后将未压缩的数据馈送到AL


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

我最终使用了核心音频和音频单元,因为我想做更复杂的事情。我最终使用了核心音频和音频单元,因为我想做更复杂的事情。