Петля OpenAL источник со смещением - PullRequest
1 голос
/ 16 февраля 2010

OpenAL API заявляет, что установка смещения все еще заставляет звук возвращаться к нулю для зацикливания источников. Но есть ли способ зацикливаться и все же иметь смещение?

У меня есть mp3, и поскольку он содержит заголовки с информацией в начале файла, существует небольшая, но заметная задержка в цикле при перемотке.

Если нет, существуют ли другие сжатые форматы, которые не содержат эти пустые заголовки?

1 Ответ

1 голос
/ 28 февраля 2010

Может быть, ваша задержка может также представлять время для распаковки данных MP3? Если ваши данные достаточно малы для циклического воспроизведения, можете ли вы использовать API для распаковки MP3 в PCM, а затем просто передать эти несжатые данные в AL?

Другой вариант: вам не нужно использовать только один буфер. Вы можете поставить их в очередь с помощью alSourceQueueBuffers (). При такой потоковой передаче AL может сразу перейти от конца одного буфера к началу следующего. Таким образом, вы можете поставить в очередь данные из двух или трех буферов, затем опросить источник, чтобы увидеть, когда был использован первый, и поставить в очередь другой. По сути, это сделает вас ответственным за зацикливание.

...