startRecording()
왼쪽이 샘플코드, 오른쪽이 내가 MediaRecorder(1)에서 작성했던 startRecording 코드이다.
구성내용이 99% 동일해 당황했다. 다른 거라곤 fileName부분인데 fileName에서 오류가 났을 경우가 아니라면 이 코드블럭에는 문제가 없나보다. 다만 나는 버튼으로 바로 불러오는 것이고 샘플은 함수로 만들어서 호출하는 방식을 취했다.
그러면 stopRecorder를 보자.
stopRecording()
이번에도 왼쪽이 샘플코드, 오른쪽이 내가 만든 코드이다. recorder에 null로 만들어주는 것을 제외하면 동일하다.
그렇다면 recorder = null을 추가해주고 fileName을 변경해 다시 디버깅해보도록 했다. 놀랍게도 문제없었다.
그러나 재생을 할 수가 없어서 이게 실제로 저장되는 지 알수 없었다.
이렇게 해서 filePath를 log로 찍어 Device File Explorer로 열어봤지만 하위 항목에 대해서는 알 수가 없었다.
알고보니 storage 하위 디렉토리에 있었다.
캐시안에 있는데 처음에만 캐시로 테스트해보고 그 다음에 filesDir로 만들었는데 그 흔적은 찾아볼 수 없었다.
일단 파일이 생성되면 어디에 생기는지 알기위해 텍스트파일 하나를 만들어보았다.
https://developer.android.com/training/data-storage/app-specific?hl=ko#java
파일 저장을 해도 어디에 생성되는 지 알 수가 없었다. 일단 MediaRecorder를 하기전에 파일 먼저 하고 가야겠다. 파일 예제대로 하고, 구글링을 통해 복사해서 넣어봤지만 어디에 파일이 생성되는지 모르겠다. 에뮬레이터의 경우에는 잘 나오는데 실제 기기로 테스트할 때만 안되는 것을 봐서는 단순히 권한 문제인것같긴하다.
"댓글, 공감 버튼 한 번씩 누르고 가주시면 큰 힘이 됩니다"