У меня есть интерфейс bufferqueue (SLAndroidSimpleBufferQueueItf) для аудиоплеера OpenSL. Я регистрирую обратный вызов с помощью интерфейса. Внутри моего обратного вызова я выполняю условное ожидание данных, которые необходимо заполнить в круговом буфере.Принудительный обратный вызов для SLAndroidSimpleBufferQueueItf
Моя проблема: я не могу понять, как получить этот первоначальный вызов для моего обратного вызова.
Я заставил его, передав жестко закодированные данные для Enqueue сразу после создания интерфейса. Это приводит к воспроизведению моих фиктивных данных, а затем к моему обратному вызову, когда он будет ожидать данных в буфере циркуляции.
Это позволяет всем хорошо работать. Я просто не хочу передавать эти фиктивные данные, чтобы получить обратный вызов в первый раз.
Что мне не хватает?
Почему бы не вызвать обратный вызов непосредственно из основного потока один раз? – Joan