我正在申请一些语音处理。语音录制使用 AndroidAudioRecord
类。该AudioRecord
实例被放入服务中。一个单独的线程用于调用类的read()
方法 AudioRecord
(SO上有足够的例子)。读取的样本被转发到我的本机代码以进行进一步处理,并将它们放入某个队列中。在本机代码中,一个线程正在执行处理。问题是这个线程永远不会得到处理器时间。在完成我的应用程序后,我调用了一些函数来清理我的原生资源。但是碰巧整个清洁过程还没有完成(我使用调用建立了它)。当我再次启动应用程序时,我的本机处理开始(尚未开始读取新样本)。
读取线程是否有可能只为自己使用处理器?我可以为我的本机(处理器)线程设置更高的优先级吗?或者它可能是其他一些问题。
我什至尝试过使用AudioRecord.OnRecordPositionUpdateListener
但onPeriodicNotification
没有成功。