마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Intent로 녹음데이터(MediaRecorder) 보내는 방법 질문드립니다.

0 추천

안녕하세요, 초보 개발자입니다. 

질문 드리기전에 일단 제가 구현하고 있는 기능은

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;
                }

 

kelly09 (120 포인트) 님이 2019년 1월 23일 질문
kelly09님이 2019년 1월 23일 수정

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...