permission 문제로 Audio Record 시 무한 에러 발생
houndify 를 이용해서 audio record 하는 코드를 작성하는데, 언젠가부터 audio record 에서 무한히 에러가 발생했다 :
(1) 안드로이드에 익숙치 않고, (2) 오디오 레코드 처리를 JNI 코드에서 수행하기 때문에 IDE에서도 별다른 warning 을 주지 않았기 때문에 이런 삽질을 하게 된 것.
Main Activity 에 다음과 같이 처리하는 코드를 넣어두니 당장 동작은 하게 되었다. 사실 코드가 Service 에 있어 처리 방법을 좀더 고민해 봐야 하는데 진도가 급하므로 일단 이정도로 만족.
03-20 11:11:45.209 27421-27525/com.alticast.mmux V/AudioByteStreamSource: manufacturer = samsung, model = SM-G920S
03-20 11:11:45.219 27421-27525/com.alticast.mmux E/AudioRecord: AudioFlinger could not create record track, status: -1
03-20 11:11:45.229 27421-27525/com.alticast.mmux E/AudioRecord-JNI: Error creating AudioRecord instance: initialization check failed with status -1.
03-20 11:11:45.229 27421-27525/com.alticast.mmux E/android.media.AudioRecord: Error code -20 when initializing native AudioRecord object.
03-20 11:11:45.229 27421-27525/com.alticast.mmux E/audio_debug: AudioRecordFactory failed to create new instance
(1) 안드로이드에 익숙치 않고, (2) 오디오 레코드 처리를 JNI 코드에서 수행하기 때문에 IDE에서도 별다른 warning 을 주지 않았기 때문에 이런 삽질을 하게 된 것.
Main Activity 에 다음과 같이 처리하는 코드를 넣어두니 당장 동작은 하게 되었다. 사실 코드가 Service 에 있어 처리 방법을 좀더 고민해 봐야 하는데 진도가 급하므로 일단 이정도로 만족.
if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this,
                    new String[]{Manifest.permission.RECORD_AUDIO},
                    100);
}
댓글
댓글 쓰기