현재 AudioTrack class를 이용하여 PCM 버퍼를 플레이 하는데요.
여기에는 AudioTrack.OnPlaybackPositionUpdateListener 의 interface 를 등록해서 callback함수로써 일정 버퍼단위로 write하면 Listener를 통해 완료메세지가 오고 그러면 그때 다시 일정버퍼를 write 하는방식으로 PCM을 플레이 하고있는데요

문제는 이 PCM play가 UI에서 사용하면 같은 쓰레드로 돌기때문에 PCM을 플레이하는중에는 화면 UI가 아주 느리게 작동하는 문제가 발생하였습니다.
그래서 Listener을 통한 PCM Play를 다른 쓰레드로 동작하게끔 하고싶은데요
이것저것 찾아보니 Service방식으로 따로 동작시키면 된다고 하는데 ..
AudioTrack Class Reference를 찾아보다보니 AudioTrack.OnPlaybackPositionUpdateListener 해당 리스너를 등록할때

1. setPlaybackPositionUpdateListener(AudioTrack.OnPlaybackPositionUpdateListener listener)

2. setPlaybackPositionUpdateListener(AudioTrack.OnPlaybackPositionUpdateListener listener, Handler handler)

등록하는 방법이 두가지가 있는듯 한데요...

여기서 제가 좀전에 얘기했던 별도 쓰레드로 PCM 플레이를 하기위해서 핸들러라고 하는것을 지원해주는것으로 보이는데요

2번에서 보이는 리스너를 등록할때 핸들러를 생성해서 연계해주는 방법을 한번 사용해보고싶은데

핸들러를 Handler mHandler = new Handler(); 이렇게 별도로 생성해서

2번과 같이 등록할때 같이 등록해주고, 그다음에 어떻게 핸들러 이벤트로 받을수 있는지 궁금합니다.

2번에 보이는 API가 제가 생각한것이 맞는것인지 아닌지도 궁금하네요

고수님들 답변좀 부탁드립니다.