0

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

读取线程是否有可能只为自己使用处理器?我可以为我的本机(处理器)线程设置更高的优先级吗?或者它可能是其他一些问题。

我什至尝试过使用AudioRecord.OnRecordPositionUpdateListeneronPeriodicNotification没有成功。

4

1 回答 1

0

我找到了解决方案。这是我移植的库中的错误。处理块之一调用sleep方法。这个库最初是在windows下使用的,睡眠时间以毫秒为单位。移植后,此时间以秒为单位。所以我的本机线程睡了 50 秒而不是 50 毫秒。

于 2013-02-27T16:05:04.663 回答