OpenAL - воспроизведение буфера задом наперед? - PullRequest
1 голос
/ 29 января 2010

Я работаю над приложением «Какао-тач», использующим OpenAL, но я готов переключиться на другой фреймворк, если меня заставят (мне не нужны 3D-вещи)

Я искал способ воспроизвести звук задом наперед, но я нашел только (очень сложные) примеры с использованием Audio Unit. Есть ли способ сохранить буфер в обратном порядке, чтобы я мог воспроизвести его задом наперед, используя OpenAL?

1 Ответ

2 голосов
/ 06 марта 2010

Вы можете воспроизводить звук в обратном порядке, переупорядочивая каждый семпл на волновых данных, это так же просто, как манипулирование двоичными данными.

openAL не имеет возможности считывать выборку с конца данных до первых данных, но вы можете сделать это, поставив в очередь данные в openAL, используя буфер с размером выборки, например, если вы работаете с использованием 16- битовая волна, вам понадобится большой буфер с размером 2 байта, затем поместите его в openAL один за другим в обратном направлении, что не очень эффективно.

еще лучше сначала предварительно обработать волновые данные, чтобы они выполнялись в обратном направлении, поэтому у вас есть две данные (или дорожка), обычные данные и обратные данные, а затем вы можете воспроизводить данные / дорожку на основе события вашего приложения.

...