사운드 녹음은 안드로이드 스튜디오 코딩에서 단순한 재생이라든지 또는 TextToSpeech 와는 다른 점이 녹음 과정에서 얼마나 많은 메모리 용량이 필요할지 모른다는 점이다. 안드로이드 코딩 과정에서 보면 저장해야 할 문자열 정보가 있다면 ArrayList를 성정해서 adapter를 사용하여 가져다 쓰는 기법이 사용되고 있지만 이때에 사용하는 메모리 용량은 안드로이드 앱 자체로서 할당이 된다. 하지만 녹음 과정은 그 길이가 상당히 길어져 과연 얼마만큼의 용량이 필요할지 앱 코드를 작성하는 시점에서 알 수 가 없는 것이다. 따라서 스마트폰 내에서 어느 정도의 메모리 용량이 사용 가능한지는 안드로이드 OS 시스템만이 전체 시스템의 메모리를 관리하므로 알 수 있는 것이다. 따라서 AndroidManefiest.xml에서 uses-permission 용법이 사용되며 에뮬레이터에서 시뮬레이션이 안 된다는 점에 유의하자.
사운드 녹음과정은 녹음(Record) 중지9Stop) 재생(Play)으로 요약할 수 있다. 따라서 3개의 버튼이 필요하다. 아울러 오디오 앱이라는 점을 보여주기 위해 적절한 로고 그림도 필요할 것이다. 로고는 그림판에서 홪장자 png 파일로 처리하여 소문자 파일 명으로 저장해 두었다가 복사하여 res 의 drawable 폴더에 붙여넣기 한다.
하나의 ImageView 와 3개의 Button을 갖는 레이아욱을 다음과 같이 디자인 하자.
스마트폰 안드로이드 시스템으로부터 지원받는 MediaRecorder 와 MediaPlayer 가 있음에 주목하자. 아울러 android.os.Environment 라이브러리에 의해 에뮬레이터가 아닌 스마트폰에서 Output 파일 출력이 이루어진다.
MainActivity에서 녹음을 실행하기 위해서 다음과 같은 준비가 필요하다. 중지와 재생은 거짓으로 선언해 두자. MeadiaRecorder() method 로 인스턴스를 생성한다. 오디오 소스 MIC, 출력 및 엔코딩 포맷을 설정한다.
녹음 준비 후 시작이 되면 어느 시점에 record 는 false 처리하고 stop 은 true 처리하자.
녹음 후 중지가 되었으면 2가지 경우가 있을 수 있다. 하나는 녹음이고 다른 하나는 제생이다. 하지만 MyAudio는 여기서 한번만 재생이 가능하다. 제대로 된 녹음기를 구성하려면 경우의 수를 잘 따져서 코드를 완벽하게 작성해야 할 것이다.
마지막으로 녹음된 내용을 재생해보자.
첨부된 코드를 다운하여 실행해 보자.
Blog Reference
Create an Audio Recorder for Android
https://medium.com/@ssaurel/create-an-audio-recorder-for-android-94dc7874f3d
'안드로이드 스튜디오' 카테고리의 다른 글
2021년 12월 코딩 아트 베스트 블로그 (0) | 2021.07.12 |
---|---|
6.3 가속도센서 Shake Color Change 안드로이드 스마트폰 프로젝트 (0) | 2020.05.30 |
3.8 안드로이드 스튜디오 Fragment 코드 예제 (0) | 2020.04.14 |
7.2 안드로이드GraphView 라이브러리를 사용해 바그래프를 출력해 보자 (0) | 2020.04.12 |
7.1 안드로이드 화면에 GraphView 라이브러리를 사용해 그래프를 출력해 보자 (0) | 2020.04.11 |