50일차
30개 프로젝트로 배우는 Android 앱 개발 with Kotlin 초격차 패키지 Online
강의 목표
- 프로젝트를 따라해보며 앱개발에 필요한 기술을 학습할 수 있습니다.
- 프로젝트를 따라해보며 앱개발에 필요한 기술을 학습할 수 있습니다.
- 앱 개발시 원하는 기능을 구현하기 위해 어떤 기술이 필요한 지 알 수 있습니다.
- 디자인 아키텍처 패턴, 비동기 처리 등 효율적인 앱 개발 방법을 익힐 수 있습니다.
목차 02 Basic - Ch07. 녹음기
기본 UI 구성권한 요청하기녹음 기능 구현하기 - 1녹음 기능 구현하기 - 2오디오 시각화- 마무리
마무리
이제 찐막으로 자잘한 오류를 잡도록 하겠다.
reset 버튼을 눌렀을 때 녹음과 재생은 중지되도록 작성했지만 visualizer와 countView에는 반영되지 않았다.
// countUpTextView class
fun clearCountUp() {
updateCountTime(0)
}
// soundVisualizer class
fun clearVisualization() {
handler?.removeCallbacks(visualizerRepeatAction)
drawingAmplitudes = emptyList()
invalidate()
}
// MainActivity
resetButton.setOnClickListener {
stopPlaying()
state = State.BEFORE_RECORDING
soundVisualizerView.clearVisualization()
recordTimeTextView.clearCountUp()
}
각 클래스(커스텀 뷰)에 초기화 메소드를 작성해서 reset 클릭리스너에 달아준다.
정말로 ez않지 않을 수 없는 부분이다.
그리고 한번 녹음한 것을 재생하고 다시 녹음하여 재생하였을 때, draw할때의 포지션을 초기화 해줘야한다.
fun stopVisualizing() {
handler?.removeCallbacks(visualizerRepeatAction)
replayingPosition = 0;
}
이걸 깜박하네...
이제 찐막으로 고칠껀, 녹음된 파일을 모두 재생하고 나서, 다시 재생할 수 있도록 completeListener를 달아주는 것이다.
그럼 stopPlaying 상태로 넘어가기 전에 여러번 반복할 수 있겠죠??
player?.setOnCompletionListener {
stopPlaying()
state = State.AFTER_RECORDING
}
정말 놀랍게도
이렇게 까지 완성하면 녹음기 앱이 완성되었다.
놀랄 노 짜 🤔
드디어 50일 챌린지 마지막 포스팅이구만유 껄껄껄 환급 개꿀띠
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
수강인증샷
링크
'Android > Challenge' 카테고리의 다른 글
패스트캠퍼스 챌린지 49일차 (0) | 2022.03.13 |
---|---|
패스트캠퍼스 챌린지 48일차 (0) | 2022.03.12 |
패스트캠퍼스 챌린지 47일차 (0) | 2022.03.11 |
패스트캠퍼스 챌린지 46일차 (0) | 2022.03.10 |
패스트캠퍼스 챌린지 45일차 (0) | 2022.03.09 |