1
如何獲取openal中播放源的當前位置?我想我的意思是,在硬件通過緩衝區,openal緩衝區,硬件緩衝區等之後,音頻中的哪個位置正在播放。openal:獲取源的當前播放位置
我已經簡要了解了api,但是我不太確定AL_SAMPLE_OFFSET/AL_BYTE_OFFSET/AL_SEC_OFFSET意味着什麼。如果我正在播放流媒體源,我似乎並沒有得到一個不斷增加的數字,看起來我可能在當前的播放緩衝區中獲得一個位置? (或所有的緩衝區?)
例如,一邊玩,我循環,並運行此代碼:
alGetSourcef(sources[0], AL_SAMPLE_OFFSET, &secoffset);
printf(" - %f samples\n", secoffset);
,並得到
- 0.000000 samples
- 8192.000000 samples
- 9216.000000 samples
- 5632.000000 samples
這似乎並沒有增加。
這是macos 10.7與最新的xcode 4.3,但我假設它應該在其他平臺上類似。
更新:
我已經嘗試增加緩衝區大小,它實際上看起來像它只是在當前播放的緩衝當前位置:所以考慮到
- 0.000000 bytes
- 18432.000000 bytes
- 20480.000000 bytes
- 36864.000000 bytes
- 36864.000000 bytes
- 55296.000000 bytes
- 55296.000000 bytes
- 73728.000000 bytes
refilling buffer 2408
re-queued buffer 2408
- 16384.000000 bytes
- 34816.000000 bytes
- 34816.000000 bytes
- 51200.000000 bytes
- 51200.000000 bytes
- 69632.000000 bytes
refilling buffer 2409
re-queued buffer 2409
,有沒有一個像樣的通過多種不同的緩衝區保持跟蹤的開路方式?
謝謝。直到後來我纔看過規範(我認爲編程指南就足夠了)。 – 2012-04-18 02:39:48