Определите, когда был воспроизведен буфер, не опрашивая источник в OpenAL - PullRequest
0 голосов
/ 05 апреля 2011

Возможно ли это вообще? Было бы здорово, если бы мне как-то удавалось вызывать функцию каждый раз при обработке буфера. Любые другие идеи, кроме опроса источника приветствуется: D

1 Ответ

0 голосов
/ 05 апреля 2011

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

Если вы чувствуете себя очень смело, вы можете взломать это в исходный код OpenAL.Судя по внешнему виду кода, вы поместите изменение в mixer.c в самом конце файла, где-то ближе к концу функции MixSource().

Помня, конечно, что OpenAL-soft это lGPL;поэтому вам нужно выпустить / сделать доступными любые изменения, которые вы внесли в саму библиотеку.

Если вы застряли с использованием предварительно включенных библиотек, у вас не так много вариантов.OpenAL отвергает идею функций обратного вызова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...