0

我有一个用于 OpenSL 音频播放器的缓冲区队列接口 (SLAndroidSimpleBufferQueueItf)。我用接口注册了我的回调。在我的回调中,我正在对要填充到循环缓冲区中的数据进行有条件的等待。

我的问题是我不知道如何获得对我的回调的初始调用。

我通过在创建接口后立即将硬编码数据传递给 Enqueue 来强制它。这具有播放我的虚拟数据然后进入我的回调的效果,它将等待循环缓冲区上的数据。

这使一切都可以正常工作。我只是不想传递这个虚拟数据来第一次触发回调。

我错过了什么?

4

1 回答 1

0

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

它让球滚动,导致我的回调被调用,进入等待条件,等待传入数据发送到扬声器。

于 2013-12-14T04:36:47.473 回答