我正在尝试使用NDK在Android上创建基于流的音频应用程序(这反过来又使用了开放式SLES)。我有基本的流媒体设置工作。
我需要知道在Android中如何处理欠载(或超限)?错误回调如何实现?如何获得AudioPlayer缺乏数据的持续时间?
提前致谢。
最佳答案
在缓冲区队列的接口上使用RegisterCallback
注册回调后,可以调用以SetCallbackEventsMask
为掩码位之一的SL_BUFFERQUEUEEVENT_ERROR
。
我不知道有什么简单的方法可以检索AudioPlayer饿死数据的持续时间,但是您可以通过处理自己的计时器并使用GetState
API(也可以从缓冲区队列的接口对象中)来实现此目的为了获得缓冲区队列为空的时间量。
希望这可以帮助!