openAL получить / установить смещение в секундах - PullRequest
2 голосов
/ 08 июля 2011

Я использую OpenAL для воспроизведения фоновой музыки.В какой-то момент мне нужно получить точное текущее положение на трассе.Я попытался использовать alGetSourcef(_source, AL_SEC_OFFSET, &offset);, и он отлично работает на iOS 4, но на iOS 3 он возвращает int (без десятичных разрядов).Это не достаточно точно, так как мне нужна точность как минимум до 3 знаков после запятой (я затем использую эту информацию о смещении, чтобы перейти к другой точке на треке, а округленное значение означает, что она в итоге переходит на неточную позицию).

Можно ли получить AL_SAMPLE_OFFSET или AL_BYTE_OFFSET и затем преобразовать это значение в секунды?

Звуковой файл: 16-битный PCM WAV с частотой дискретизации 22050.

1 Ответ

4 голосов
/ 08 июля 2011

При частоте дискретизации 22050 в секунду все, что вам нужно, это разделить смещение выборки на 22050, чтобы получить время.

...