Android/Side Projects

Pomodoro Timer 앱 개발하기

화요밍 2022. 1. 30. 22:43
728x90
반응형
Side Projects - Pomodoro Timer
0~60분 사이의 타이머를 설정하고 종료되면 알람이 울리는 기본적인 타이머를 구현한 프로젝트
 

GitHub - hwayeon351/Pomodoro-Timer

Contribute to hwayeon351/Pomodoro-Timer development by creating an account on GitHub.

github.com


학습 회고

오늘은 뽀모도로 타이머 앱을 완성했다.

타이머가 동작할 때 째깍 거리는 소리와 타이머가 종료할 때 울리는 알람 소리를 SoundPool을 이용해서 적용하고 Vector Asset을 이용해서 Seekbar의 thumb과 토마토 꼭지를 만들어 UI에 적용했다.

 


오늘 공부한 내용

  • SoundPool

SoundPool 클래스는 오디오 리소스를 관리하고 재생하는 클래스이다.

SoundPool은 APK 안의 리소스나 파일시스템에 있는 파일을 메모리에 적재할 수 있는 사운드 샘플들의 컬렉션이다.

SoundPool 사운드는 메모리에 사전에 디코딩 되기 때문에 5.6초 정도의 1MB로 제한된다.

 

SoundPool.play(int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate)

 

  • loop

loop값에 -1을 설정하면 사운드를 무한반복 시킬 수 있다. 이때, stop() 메서드를 호출하면 사운드를 중지할 수 있다.

또한 0이 아닌 다른 값을 넣으면 지정된 횟수만큼 사운드가 반복된다. 3을 넣으면 4번 재생된다.

 

  • rate

재생속도를 조정해서 변경할 수 있다. 1.0이면 원래 주파스로 재생되며, 2.0이면 원래 주파수의 2배로 재생되고 0.5이면 원래 주파수의 절반으로 재생된다. 재생속도는 0.5~2.0 범위 내에서 설정할 수 있다.

 

  • priority

우선 순위는 숫자가 높은 것부터 실행된다. 우선 순위는 play() 함수가 호출되고 활성화된 스트림이 maxStreams를 초과했을 때 적용된다. 이 경우, 우선 순위가 가장 낮은 스트림이 중지된다.

 

1. SoundPool.Builder를 통해 SoundPool 객체를 빌드한다.

 

2. APK 리소스 중 사용할 오디오를 SoundPool.load()를 통해 로드한다.

 

3. load한 사운드를 재생해야할 때 SoundPool.play() 함수를 호출해서 사운드를 재생한다.

 

4. SoundPool.autoPause()를 이용해서 활성화된 사운드를 모두 중지한다.

 

5. 이전에 활성화 된 사운드를 다시 재생해야할 때 SoundPool.autoResume() 함수를 호출한다.

 

6. SoundPool.release()를 호출하여 모든 자원들을 방출한다.

 

 

728x90
반응형

'Android > Side Projects' 카테고리의 다른 글

녹음기 앱 개발하기  (0) 2022.02.01
녹음기 앱 개발하기  (0) 2022.01.31
Pomodoro Timer 앱 개발하기  (0) 2022.01.29
전자 액자 앱 개발하기  (0) 2022.01.28
전자 액자 앱 개발하기  (3) 2022.01.27