2013-12-12 43 views
0

我有一个OpenCL音频播放器的bufferqueue接口(SLAndroidSimpleBufferQueueItf)。我用接口注册我的回调。在我的回调中,我正在做一个有条件的等待数据填充到循环缓冲区中。强制初始回调SLAndroidSimpleBufferQueueItf

我的问题是我无法弄清楚如何获得最初的电话给我的回调。

我已经强制它在创建接口后将硬编码数据传递给Enqueue。这具有播放我的虚拟数据,然后进入我的回调的地方,它将等待循环缓冲区中的数据。

这使得一切运作良好。我只是不想通过这个虚拟数据来第一次触发回调。

我错过了什么?

回答

0

好了经过进一步的审查,似乎对我来说最好的解决方案是将Enqueue函数填充为0的缓冲区。

它使球滚动,导致我的回调被调用,进入等待状态,等待传入数据发送给扬声器。

+0

为什么不直接从主线程调用回调一次? – Joan