스마트 폰의 마이크를 사용하여 소리를 녹음 후 재생하여 들을 수 있도록 앱을 만들어 보자. 별도의 부품 준비는 필요 없으며 안드로이드 스마트 폰만 준비되면 코딩을 시작할 수 있다.
소리 녹음 및 재생을 위해서 필요한 버튼 조작 과정을 잠깐 정리해 보자.
녹음: Start⤍Stop
재생: Play⤍Stop
아울러 녹음했다가 재생한다는 얘기는 생성된 음원을 메모리에 디지털 방식으로 저장해 두었다가 꺼내서 듣는다는 의미 일 것이다.
앱인벤터 사운드레코더를 코딩하려면 3개의 버튼과 음원을 저장할 메모리가 필요하다.
다음과 같이 스마트폰 화면을 구성하는데 필요한 컴포넌트들을 준비하자.
레이아웃에서 Horizontal Arrangement를 1개 드래그 한다음 User Interface에서 3개의 버튼을 드래그 해 두자.
Media에서 Player와 Soundrecorder를 드래그하면 뷰어 박스 하단에 Nonvisible에 위치하게 된다. 아울러 Storage에서 TinyDB 1개를 드래그하면 역시 Nonvisible에 위치하게 된다.
첫째로 Layout에서 가져온 수평박스(HorizonalArrangement)에녹음 시작 플레이 정지(Start Play Stop) 버튼을 넣도록 한다. 수평박스가 스마트 폰 폭을 채우려면 속성(Property)창에서 Width 메뉴를 열고 Fill parent를 클릭 선택한다.
아울러 User Interface에서 버튼을 1개씩 3번 끌어다 둔다. 버튼의 속성 창 Text 메뉴에서 각각의 이름을 Start. Play, Stop 으로 입력 하자. 이 3개의 버튼들이 1개의 수평박스에 균등하게 위치하려면 속성 창에서 Width 메뉴를 열어 33% 를 입력하도록 한다. 3개의 버튼 폭이 합 99% 이므로 수평 박스를 가득 채우게 된다.
한편 버튼 명칭 Button1, Button2, Button3를 하단의 Rename 기능을 사용하여 btnStart, btnStop, btnPlay 로 바꾸도록 하자.
버튼 준비가 완료되었으면 Media에서 사운드를 녹음하고 플레이 할 수 있도록 SoundRecorder 와 Player를 끌어오도록(Dragging) 한다.
이 두가지 Media 요소는 속성이 Non-visible 이므로 스마트 폰 뷰어 하단에 위치하게 된다. Screen1 이라는 명칭도 좀 더 세련되게 Sound/MP3 로 타이틀 박스에 입력하도록 하자.
그밖에도 녹음 작업에 따라 생성되는 일종의 음원 파일을 데이터로 저장해야 할 필요가 있다. 스마트 폰 앱 사용 시에 재생 목록에서처럼 일종의 데이터 베이스가 필요한 셈이다. 따라서 Pallette 편집 창의 Storage에서 TinyDB를 끌어다 놓도록 한다. Non-visible 요소이므로 스마트 폰 뷰어 하단에 위치하게 된다.
필수적인 컴포넌트들의 배치가 완료되었으므로 블록(Blocks) 편집으로 넘어가 퍼즐 코딩을 시작하자. 블록 편집기에서 앞에서 준비했던 항목들을 볼 수 있다.
btnStart를 클릭하여 When btnStart.Click 암컷 퍼즐 조각을 가져오고 SoundRecorder1을 클릭하여 보라색 call SoundRecorder1.Start 수컷 퍼즐 조각을 끌어와 퍼즐 조각을 맞춘다.
유사하게 btnStop을 클릭하여 When btnStop.Click 암 퍼즐 조각을 가져오고 SoundRecorder1을 클릭하여 보라색 call SoundRecorder1.Stop 수컷 퍼즐 조각을 끌어와 퍼즐 조각을 맞추도록 한다.
버튼 Start 와 버튼 Stop 퍼즐 외에 SoundRecorder1에서 사운드 레코딩이 완료 되었을 때에 이 음원 데이터를 데이터베이스에 저장해야 할 필요가 있다.
SoundRecorder1에서 when SoundRecorder1.AfterSoundRecordered 암컷퍼즐을 불러오고 TinyDB1에서 call TinyDB1.StorValue 수콧퍼즐 조각을 끌어와 맞추도록 한다.
sound를 클릭하여 get sound를 valueToStore에 끼우도록 한다. tag에는 Built-in의 Text 조각을 끌어와 맞추고 “recordedSound” 로 입력하도록 하자.
사운드레코딩이 된 다음에는 이 사운드를 다시 플레이할 필요가 있으므로 버튼 Play에서 when btnPlay.Click을 끌어온 후 Player1에서 setPlayer1.Source to 퍼즐을 가져와 끼운 후 TinyDB1에서 call TinyDB1.GetValue 퍼즐을 가져다 끼우고 tag 에 텍스트 “recordedSound” 조각을 끼운다.
일단 코딩이 완료되었으므로 블록 편집기를 빠져 나와서 이 파일을 저장하고 Connect 탭 명령에서 AI Companion을 클릭하여 QR코드 스캔 작업을 실시한다.
앱인벤터 코드를 실행시켜 보도록 한다.