*통화 기능 구현을 위해 AudioRecord, AudioTrack사용시 실시간 처리 문의

폰1(녹음, 재생) <===(전송)====> 폰2(녹음,재생)을 하는 기능을 구현중입니다.
(AudioRecord, AudioTrack, DatagramSocket 사용)

문제
AudioRecord로 녹음시, read()함수를 반복적으로 사용할경우, 하드웨어를 직접접근해서 그런지 빠르게 동작하지 않습니다.

byte[] recordBuffer = new byte[1024*5]; 

while(true){
   int offset=0;
   int readSize=1024;
   while(true){
       readByte = audioRecord.read(recordBuffer, offset, readSize);    
       offset+=readByte;     
     
       if(offset+1024>recordBuffer.length) readSize = recordBuffer.length-offset;
       if(readByte<=0 || readSize<=0) break;    
      } 

   try {Thread.sleep(200);} 
   catch (InterruptedException e){ e.printStackTrace(); } 
 }

0.2초에 1024*5byte씩 딱딱 뽑아내고 싶은데 중간중간에 제대로 read를 못하게 됩니다
=>OnRecordPositionUpdateListener를 사용하게 되면 이문제는 해결할수 있나요? 아니면 어떤방법이 있을까요?
(callback함수가 있어서 그 함수안에서 data를 빠르게 처리할수 있는 방법이 없을까요?)