audiorecorder read总是返回0分析

项目用到录音功能  在写时发现这个问题 在应用进行第一次录音是ok,但录完后进行再次录音时录不上

后经追踪发现 是audiorecorder的read抓不到数据 总是返回0

这个问题很奇怪 因为重新创建recoder时可以重新创建,且所有状态均正确,但就是在read时抓不到数据

后经各种蛋疼的调试后 发现ui逻辑层 做用完录音引擎后没有对引擎做release操作 导致上次的recorder的对象没有release

原因是这个原因 但是为什么上次的recorder没有release,这次重新new的理应与上次没关系 没有release也没关系 如果从纯java层来考虑是没有问题的

这样出问题的原因

目前猜测是

是audiorecorder 是调用c层代码实现的 而c则是通过操作硬件实现的 但是硬件只有一个 上次没有release 就会导致硬件被占用

这只是猜测,具体的等以后有时间了,撸下源码会确定,撸完源码 再把具体的原因写下

你可能感兴趣的:(android)