“지금 무슨 노래 듣고 계세요? 뉴진스의 하입보이요”
길거리에서 지나치는 수많은 사람들이 어떤 노래를 듣고 있는지 궁금한 적 있으신가요?
Music Road는 주변 사람들이 어떤 노래를 듣고 있는지, 더 나아가 내가 어떤 노래를 듣고 있는지 손쉽게 공유할 수 있으면 어떨까 라는 생각에서 출발했습니다.
내가 Pick한 음악을 길거리에 남기고, 지도의 Pick을 통해 다른 사람들은 이 장소에서 어떤 음악을 들었는지 둘러보세요.
- 음악 취향을 공유하고 싶은 사람
- 다른 사람들은 지금 이 장소에서 어떤 노래를 들었는지 궁금한 사람
- 새로운 노래를 찾고 싶은 사람
|
|
|
|
|
분류 | 기술 스택 |
관련 문서 |
---|---|---|
Architecture | ||
UI | ||
DI | ||
Map | 지도 API 비교 | |
Network | ||
Image | Coil vs Glide | |
Media | [음원 재생] 기술 검토 및 기획 [영상 처리] 기술 검토 및 기획 |
|
Backend | ||
Data Storage | Firebase Firestore vs RealtimeDB |
- 디자인 요구사항에 맞게 마커 아이콘으로 사용할 커스텀 뷰를 만들었습니다.
- 지도를 축소했을 때 겹쳐지는 마커에 클러스터링 기능을 적용했습니다.
- 클러스터 마커를 클릭했을 때 포함된 항목을 보여주기 위해 클러스터 마커의 태그를 단말 마커의 태그를 모두 병합하여 지정하는 방식을 선택했습니다.
- ExoPlayer를 사용하여 컴포즈 UI에 대응되는 음원 플레이어를 구현했고, 메인 지도 화면에서 주변 반경 내의 음원을 셔플 재생할 수 있습니다.
- Configuration change가 일어나도 플레이어의 상태가 유지됩니다.
- 음원의 주파수 대역별 음량 데이터를 전처리 후 시각화하여 플레이어 UI에 반영했습니다.
- MediaSessionService를 이용해 포그라운드에서 동작하는 플레이어를 구현했습니다.
- 디자인 요구사항에 따라 영상 재생 화면을 커스텀 했습니다.
- 제스처와 애니메이션을 사용하여 화면 이동 및 오버레이 표시가 자연스럽게 연결되도록 했습니다.
- ExoPlayer를 사용하여 영상 재생 및 일시중지, 재시작 기능을 구현했으며 화면을 회전하여도 상태가 유지됩니다.
K002 강민주 | K009 김승규 | K050 주윤겸 |
---|---|---|
@meanjoo | @miler198 | @yuni-ju |