AudioRecordの問題を調べるためにAndroidのソースコードを眺めることになったが、
SDKのJavaのソースコードは、SDK Managerからインストールできるが、
AudioRecordのJavaのソースコードにはほとんど処理はなく、実態は、
jniのネイティブコード(C++)で処理されていた。
ネイティブコード(C++)は、SDK Managerからはインストールされないので、
android Git repositories - Git at Google
から参照する必要があった。
ソースコード全体をgrepしたりするには、gitでローカルにcloneする必要がある。
AudioRecordの処理は、
media/libmedia/AudioRecord.cpp - platform/frameworks/av - Git at Google
に書かれている。
obtainBuffer timed out
のエラーもこのソースコードで出力されていた。
何の処理をしているかまではわからなかったが・・・(^^ゞ
結局、ソースコードとAPIリファレンスを眺めて解決したが、
原因不明のエラーに出くわした時はAndroidのソースコードを調べるのも有用だと思う。