2016-08-08 2 views
0

AudioRecord 개체를 사용하고 AudioRecord.OnRecordPositionUpdateListener 내에서 바이트 버퍼에 데이터를 쓰려면 AudioRecord.read을 구현하고 있습니다.이 후 다른 개체의 메서드를 호출하여 바이트 버퍼를 처리 한 후 파일에 쓰게되면 문제가 발생합니다. 개체의 처리가 꽤 길고 홀수 인 주 스레드를 멈추는 것처럼 보입니다. 이 스레드라고 생각했습니다.Android Studio에서 프로세스 레코딩 오디오를 연결하는 방법은 무엇인가요?

답변

0

명시 적으로 그렇게하지 않는 한 아무 것도 안드로이드에 스레드되지 않는다고 가정합니다. UI 스레드에서의 모든 콜백.

정상적인 방법은 응용 프로그램의 onCreate 또는 onStart에서 스레드를 시작하고 주 스레드의 메시지를 기다리는 것입니다. onMarkerRead (또는 필요한 다른 함수)를 구현하면 해당 스레드에 메시지가 전송됩니다. 알림 기능이 호출 될 때마다 스레드를 만들 수 있지만 알림을받을 때마다 스레드를 유지하면 OS 수준에서 스레드 생성 오버 헤드가 발생하지 않습니다.

여기서 AsyncTasks를 사용하지 마십시오. 그들은 올바른 솔루션처럼 들리지만 모든 앱 작업은 단일 스레드이므로 무한정 보류 될 수 있습니다.

관련 문제