Side Projects - Pomodoro Timer
0~60분 사이의 타이머를 설정하고 종료되면 알람이 울리는 기본적인 타이머를 구현한 프로젝트
- GitHub Repository -> https://github.com/hwayeon351/Pomodoro-Timer
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()를 호출하여 모든 자원들을 방출한다.
'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 |