투케이2K

762. (Android/Java) MediaRecorder 사용해 오디오 녹음 수행 - Audio Recorder 본문

Android

762. (Android/Java) MediaRecorder 사용해 오디오 녹음 수행 - Audio Recorder

투케이2K 2024. 4. 4. 20:10

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[소스 코드]

        // ---------------------------------------------------------------
        // [전역 변수 선언 실시]
        // ---------------------------------------------------------------
        MediaRecorder recorder;






        // ---------------------------------------------------------------
        // [로직 처리 실시]
        // ---------------------------------------------------------------
        try {

            /**
             * // -----------------------------------------
             * [요약 설명]
             * // -----------------------------------------
             * 1. 사전 사용자로부터 권한 획득 필요 (외부 저장소 저장)
             *
             * >> 안드로이드 13 이상
             *    AndroidManifest : READ_MEDIA_IMAGES , READ_MEDIA_VIDEO , READ_MEDIA_AUDIO
             *
             * >> 안드로이드 10 이상
             *    AndroidManifest : READ_EXTERNAL_STORAGE
             *
             * >> 안드로이드 10 미만
             *    AndroidManifest : WRITE_EXTERNAL_STORAGE , READ_EXTERNAL_STORAGE
             *
             * >> 안드로이드 10 (Q) 이상은 WRITE_EXTERNAL_STORAGE 권한이 없어도 공용 공간인 갤러리에 사진을 내보낼 수 있습니다 (다운로드, 사진 디렉토리 쓰기 가능)
             *
             * // -----------------------------------------
             * 2. 사전 사용자로부터 권한 획득 필요 (마이크 및 오디오) :
             *
             * >> AndroidManifest : Manifest.permission.RECORD_AUDIO
             *
             * // -----------------------------------------
             * */


            // [녹화 된 동영상 저장 경로 지정] : [다운로드 폴더]
            String fileUrl = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath() + "/" + "testAudioRecord.mp4";


            // [MediaRecorder 생성]
            recorder = new MediaRecorder();


            // [MediaRecorder 속성 설정]
            recorder.setAudioSource(MediaRecorder.AudioSource.MIC); // [마이크 사용]
            recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); // [저장 될 포맷 타입]
            recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
            recorder.setOutputFile(fileUrl); // [파일 저장 될 경로]


            // [녹음 시작]
            recorder.prepare();
            recorder.start();


            // [로그 출력]
            S_Log._W_("오디오 녹음 수행", null);


            // [핸들러 사용해 특정 시간 이후 녹음 자동 종료]
            new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
                @Override
                public void run() {

                    if (recorder != null){
                        recorder.stop();
                        recorder.release();
                        recorder = null;

                        // [로그 출력]
                        S_Log._E_("오디오 녹음 종료", null);
                    }

                }
            }, 10000); // [10초 뒤 수행]
        }
        catch (Exception e){
            e.printStackTrace();
        }
 

[결과 출력]

 

W///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.javaproject.A_Intro.onCreate(A_Intro.java:361)]
I/: ----------------------------------------------------
I/: [LOG :: NOW TIME :: 2024-04-04 14:23:24 목요일]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: 오디오 녹음 수행]
W///===========//: ================================================




E///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.javaproject.A_Intro$2.run(A_Intro.java:375)]
I/: ----------------------------------------------------
I/: [LOG :: NOW TIME :: 2024-04-04 14:23:34 목요일]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: 오디오 녹음 종료]
E///===========//: ================================================




>> 다운로드 폴더 이동 녹음된 파일 확인

반응형
Comments