현재 녹음기 관련 앱을 만들고 있습니다.
생각....보다 어렵더군요.
일단은 얼추 구색은 갖춘 녹음기는 만들었습니다. 다만 이렇게 만드는게 맞는지 확인하고싶네요
우선 사용한 클래스는 MediaRecorder 클래스입니다.
처음엔 쉽게... start, stop 메소드로 만들어봤습니다.
그리고 pause... !? pause 메소드가 없다!?!?!?
그래서 일단 스택오버플로에서 하란대로 만들어봤습니다.
포맷은...mp4..
1. Start
0번 임시 파일 생성
2. 일시 멈춤
0번 임시 파일 종료,
1번 임시 파일 시작
3. 정지
1번 임시 파일 종료,
지금까지 저장한 임시 파일을 하나로 합침
디비에 파일 경로 등 파일 정보 저장
4. 재생
디비에 저장되있는 파일 패스로 MediaPlayer클래스로 재생
+ 스레드로 시크바 와 연결
까지 해논 상태입니다.
지금 몇가지 생각해놓은 문제가 있습니다. 이에 대해서도 몇가지 대책'만' 있는 상태입니다.
이게 정확한 대처인지 몇가지 조언 부탁드립니다 ㅠ
1. 녹음 신뢰도
- 녹음기 어플 특성상 한시간 이상이 될수도 있습니다......만 녹음기가 중간에 날라갈거 같습니다.
사용자가 녹음액티비티 창만 쭉- 틀어놓는다면야 괜찮긴 한데 1시간 이상 녹음하는데 그럴리가 없을거같습니다.
MediaRecorder로 녹음 시 액티비티를 벗어나도 녹음하게 되는것 같지만 메인 앱이 날라갈겨우 같이 날라가는 등 몇가지 문제가 있는것 같습니다.
그래서 현재 계획은
서비스를 사용 예정입니다.
녹음 시작 시 서비스를 실행시켜서 서비스에서 녹음 대한 처리를 다 넘길 예정입니다. 서비스가 실행하면 서비스 노티로 다시 돌아 녹음액티비티로 돌아오구요.
2. 파일 저장
- 현재 파일 저장 경로는 getActivity().getApplicationContext().getExternalFilesDir(Environment.DIRECTORY_MUSIC).getAbsolutePath()+"/"+rName+".mp4";
입니다.
2가지 문제가 있는데...
1. 파일 용량 - 용량이 부족할 확률이 있습니다. 그래서 기본 저장 경로는 SD카드로 넘길려고 하는데 SD카드가 없을경우도 있네요.
2. 사용자가 파일 경로 수정,삭제 시 - 재생 부분은 사용자가 현재 앱에서 녹음안 파일만 재생 하게 됩니다. 그래서 녹음 시 마다 디비에 저장하게 했구요. 여긴 답이 안보여서 FileNotFoundException 발생 시, 그냥 파일을 찾을 수 없다는 토스트를 띄워야 하나.. 하고 있습니다.
혹시나 녹음기 어플리케이션 만들어보신 분 있으면 조언 좀 부탁드립니다 ㅠㅠ