Notice
Recent Posts
Recent Comments
Link
투케이2K
762. (Android/Java) MediaRecorder 사용해 오디오 녹음 수행 - Audio Recorder 본문
[개발 환경 설정]
개발 툴 : 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///===========//: ================================================
>> 다운로드 폴더 이동 녹음된 파일 확인
반응형
'Android' 카테고리의 다른 글
Comments