2013-12-12 4 views
0

У меня есть интерфейс bufferqueue (SLAndroidSimpleBufferQueueItf) для аудиоплеера OpenSL. Я регистрирую обратный вызов с помощью интерфейса. Внутри моего обратного вызова я выполняю условное ожидание данных, которые необходимо заполнить в круговом буфере.Принудительный обратный вызов для SLAndroidSimpleBufferQueueItf

Моя проблема: я не могу понять, как получить этот первоначальный вызов для моего обратного вызова.

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

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

Что мне не хватает?

ответ

0

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

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

+0

Почему бы не вызвать обратный вызов непосредственно из основного потока один раз? – Joan

Смежные вопросы