PPT - 앱 인벤터 2

Download Report

Transcript PPT - 앱 인벤터 2

PART 1
앱 인벤터 프로젝트
09 실로폰
음악 앱
 이제 음악은 보편적인 기술이 됨
 음악 신시사이저, CD, 샘플링과 리믹싱
 스마트폰 앱
 인터넷 음악 방송 등
무엇을 만드는가?
 책의 저자 중 한 명인 리츠 루니가 개발한
<실로폰> 앱의 기능
 색으로 구분된 여덟 개의 건반(버튼)을 눌러 실로폰
연주
 연주 자동 녹음
 [연주] 버튼을 눌러 녹음해둔 곡을 다시 듣기
 [지우기] 버튼을 눌러 녹음된 곡을 지움
무엇을 배우는가?
 <실로폰> 앱을 만들며 배우는 것들
 하나의 Sound 컴포넌트로 여러 가지 소리 파일을 연주
 Clock 컴포넌트로 음 사이의 지연 시간을 측정하고 설정함
 프로시저 제작이 필요한 시기를 판단
 자기 자신을 호출하는 재귀 프로시저
 항목 추가, 항목 접근, 리스트 비우기 등의 고급 리스트 사용법
컴포넌트 설계
건반 버튼 만들기
 도와 레 건반 만들기
 두 개의 버튼(Button1과 Button2)을 끌어옴
• BackgroundColor는 Magenta(Button1), Red(Button2)
• Text는 “도”(Button1), “레”(Button2)
• Width는 Fill parent
• Height는 40 화소
Sound 컴포넌트 추가
 Sound 컴포넌트 속성 설정
 MinimumInterval을 0으로 바꿈
 기본값 500으로 두면, 500밀리 초(0.5초)가 지나고 다음 건반을 눌러야 소리가 남
 소리 파일 다운로드
• http://appinventor.org/bookFiles/Xylophone/1.wav
• http://appinventor.org/bookFiles/Xylophone/2.wav
 소리 파일 이름을 1.wav와 2.wav 그대로 둠
 나중에 깨닫겠지만 그렇게 해야 프로그래밍이 쉬움
버튼에 소리 연결해 주기
 버튼을 누르면 소리가 나도록 프로그래밍
 두 버튼이 유사한 코드 반복  프로시저로 작성함이 바람직함
리팩토링
안드로이드에게 소리 파일 적재 명령하기
 소리 파일을 연주하는 중에 지연 발생
 소리 파일을 실행 도중에 읽어오므로 연주하기까지 지연 시간 발생함
 Sound 컴포넌트의 Source 속성에 설정해두면 해결됨
나머지 건반 구현하기
나머지 건반 구현하기
Text와 BackgroundColor 속성
나머지 건반 구현하기
녹음하고 재생하기
 재생 기능 구현
 연주된 음을 순서대로 기억해야 함
• 음에 해당하는 소리 파일 이름
• 음 사이의 지연 시간  지연 시간은 Clock 컴포넌트로 측정
 두 개의 리스트에 저장
• notes: 음에 해당하는 소리 파일 이름 저장
• times: 버튼이 클릭된 시간 저장
음과 시간 기록하기
이전 PlayNote에
추가한 코드
음과 시간 기록하기
 [지우기] 버튼
연주 재생하기
 실행 과정
 count 변수는 몇 번째 음을 재생하고 있는지 나타냄
 PlayButton.Click은 녹음된 연주가 있는지 (length of list가 0보다 큰지) if 문으로 확인
• 녹음 기록이 있으면 count를 1로 설정하고 PlaybackNote 호출
 PlayBackNote 프로시저는 현재 음을 연주한 다음, 자기 자신을 호출하여 다음 음으로 진
행  재귀 프로시저
연주 재생하기
 프로그램은 어떻게 작동하는가?
 사용자가 “도미라”를 눌렀다고 가정 (리스트에 1.wav, 3.wav, 6.wav가 들어있음)
 [연주] 버튼이 클릭되면, count=1이 되고 PlayBackNote가 호출됨
연주 재생하기
 프로그램은 어떻게 작동하는가?
적절한 시간 지연을 두는 재생하기
 Clock 컴포넌트를 사용하여 적절한 시간 지연을 두어야 제대로 된 재생
 지연 시간은 현재 음의 시간과 그 다음 음의 시간을 Clock1.Duration의 start와 end에
끼워 계산
 TimerEnabled를 true(활성화) 또는 false(비활성화)로 바꾸는 시점에 주목바람
적절한 시간 지연을 두는 재생하기
 프로그램은 어떻게 작동하는가?
 리스트에 다음 내용이 있다고 가정하고, 프로그램 동작을 단계별로 살펴보기
• Notes: 1.wav, 3.wav, 6.wav
• Times: 12:00:00, 12:00:01, 12:00:04
 PlayButton.Click은 count를 1로 두고, PlaybackNote를 호출
적절한 시간 지연을 두는 재생하기
 프로그램은 어떻게 작동하는가?
전체 앱 프로그램
전체 앱 프로그램
확장해 보기
감사합니다.