2013-12-12 64 views
0

我有一個OpenCL音頻播放器的bufferqueue接口(SLAndroidSimpleBufferQueueItf)。我用接口註冊我的回調。在我的回調中,我正在做一個有條件的等待數據填充到循環緩衝區中。強制初始回調SLAndroidSimpleBufferQueueItf

我的問題是我無法弄清楚如何獲得最初的電話給我的回調。

我已經強制它在創建接口後將硬編碼數據傳遞給Enqueue。這具有播放我的虛擬數據,然後進入我的回調的地方,它將等待循環緩衝區中的數據。

這使得一切運作良好。我只是不想通過這個虛擬數據來第一次觸發回調。

我錯過了什麼?

回答

0

好了經過進一步的審查,似乎對我來說最好的解決方案是將Enqueue函數填充爲0的緩衝區。

它使球滾動,導致我的回調被調用,進入等待狀態,等待傳入數據發送給揚聲器。

+0

爲什麼不直接從主線程調用回調一次? – Joan