2010-02-15 29 views
1

OpenAL API指出,設置偏移量仍然會導致聲音循環返回到零以獲得循環源代碼。但是有沒有辦法循環,並仍然有一個偏移量?帶偏移的Loop OpenAL源代碼

我有一個mp3,並且由於它包含文件頭部的信息頭部,所以在回捲時有一個很小的但是明顯的循環延遲。

如果沒有,是否還有其他壓縮格式不包含這些空頭文件?

+0

我結束了使用核心音頻和音頻單元,因爲我想做更復雜的東西。 – hwaxxer 2011-05-13 14:28:55

回答

1

也許你的延遲也可能代表解壓MP3數據的時間?如果您的數據足夠小以至於無法循環,您是否可以使用API​​將MP3解壓縮爲PCM,然後將該未壓縮數據提供給AL?

另一種選擇:您不必只使用一個緩衝區。你可以用alSourceQueueBuffers()將它們排隊。以這種方式進行流式處理時,AL可以從一個緩衝區的末尾立即移動到下一個緩衝區的起點。因此,您可以排列兩到三個緩衝區的數據,然後輪詢來源以查看第一個消耗的時間,然後再排隊。基本上,這會讓你對循環負責。