본문
[2017.11.02] 67. Android 음악 플레이어 프로젝트 [Seekbar Thread 추가]
도입
이번 포스팅에서는 Seekbar Thread를 추가해 현재 음악 진행 상황을 Seekbar로 보여주는 기능을 추가할 예정이다.
Android 음악 플레이어 프로젝트 [Seekbar Thread 추가]의 데이터 흐름
PlayerController 안에 Seekbar Thread를 생성해 음악 플레이어의 현재 상태를 1초 간격으로 알려준다. 그래서 현재 진행 사항을 PlayMainViewActivity와 Notification에 반영한다.
(옵저버 패턴 - http://heepie.tistory.com/137)
문제점 및 해결
1) Seekbar Thread에서 Notification 접근 문제
기존 설계에서는 Seekbar Thread에서 Notification에 직접 접근하도록 설계되어 있었다.(가능한 줄 알았다.)
그러나 Notification의 경우 안드로이드의 4대 컴포넌트가 아니기 때문에 intent로 값을 넘길 수도 없고 Seekbar Thread에서 Notification에 접근할 수 있는 방법이 없다.
그래서 데이터를 Seekbar Thread -> Service -> Notification으로 전달하는 방법으로 변경하였다.
2) Seekbar Thread와 PlayerController와의 관계
기존 설계에서는 Seekbar Thread가 독립적으로 존재했다. 그러나 생각해본 결과 Seekbar Thread의 기능은 음악의 현재 상태를 1초간격으로 보내주는 역할을 한다. 그렇다면 Seekbar Thread는 Player에 종속되는 것이 맞다고 생각해 설계를 변경했다.
변경 전 |
변경 후 |
|
|
코드
변경 전 |
변경 후 |
||||||
|
|
스크린 샷
#안드로이드 음악 플레이어 #안드로이드 mp3 #안드로이드 프로젝트 #앱개발 #모바일앱개발 #어플개발
'오렌지 플레이어 > 개발' 카테고리의 다른 글
[2017.11.13] 72. Android 음악 플레이어 프로젝트 [최적화 2 - 설계 변경] (0) | 2017.11.15 |
---|---|
[2017.11.04] 69. Android 음악 플레이어 프로젝트 [최적화 1 - 라이브러리 사용] (0) | 2017.11.04 |
[2017.11.01] 66. Android 음악 플레이어 프로젝트 [알림바 추가] (0) | 2017.11.01 |
[2017.10.30] 58. Android 음악 플레이어 프로젝트 [음악 재생 - Service 사용 O] (0) | 2017.10.30 |
[2017.10.21] 55. Android 음악 플레이어 프로젝트 [음악 재생 - Service 사용 X] (0) | 2017.10.21 |
댓글