안녕하세요, 초보 개발자입니다.
질문 드리기전에 일단 제가 구현하고 있는 기능은
1. Recording.java 액티비티에서 녹음을 시작합니다.
2. 사용자가 녹음을 하다가 녹음 중지 버튼을 누르면 새로운 액티비티(RecordEvent.java)가 열립니다.
3. RecordEvent.java에는 파일 저장, 이어 녹음하기, 재녹음 이런 메뉴들이 들어있어서
파일저장을 누르면 파일제목을 입력받고 녹음된 데이터를 저장합니다.
그러니까 녹음이 시작되는 시점 말고, 중지된 다음
RecordEvent 액티비티가 열리고, 저장이 눌렸을 때 setOutputFile을 설정하고 싶은데
어떻게 데이터를 넘기고, 저장경로를 설정하는지
제가 초보 사용자고 자바가 미숙해서 방법을 모르겠습니다ㅠㅠ
보시기 편할지는 모르겠지만 그래도
녹음 시작 코드를 함께 첨부합니다
public void onClick(final View v) {
switch (v.getId()) {
case R.id.control_toggle1:
if( findViewById(getCurrentFocus().getId()) == recogBtn) { // toggle1을 눌렀을 때 포커스가 녹음 시작 버튼에 있으면
if (recogBtn.getText().toString() == "녹음시작" && mRecorder == null) { // 버튼이름이 녹음 시작이고, mRecorder가 비어있으면
mSpeckOut.speak("삐 소리 후 녹음을 시작합니다.", TextToSpeech.QUEUE_FLUSH, null);
recogBtn.setText("녹음중지");
mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
// mRecorder.setOutputFile(PATH + RECORD_FILE); 이거 나중에 설정하면 안되나요ㅠㅠ?
try {
mRecorder.prepare();
mRecorder.start();
} catch (IllegalStateException e) {
Toast.makeText(getApplicationContext(), "error : " + e.getMessage(), Toast.LENGTH_LONG).show();
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
break;
// 1. 음성데이터 RecordEvent 액티비티로 넘겨서 저장, 일시정지 처리
} else if (recogBtn.getText().toString() == "녹음중지" && mRecorder != null) { // 버튼이름이 녹음 중지고, mRecorder가 비어있으면
// Intent recordEvent = new Intent(RecordingActivity.this, RecordEvent.class)
}
break;
}