본문

[2017.10.21] 55. Android 음악 플레이어 프로젝트 [음악 재생 - Service 사용 X]

도입

이번 포스팅에서는 지난 포스팅(http://heepie.tistory.com/156)에 이어 음악 플레이어에서 음악을 재생할 예정이다.


Android 음악 플레이어 프로젝트 [음악 재생 - Service 사용 X]의 데이터 흐름

음악 재생 Activity에 데이터를 전달 방법은 

ListActivity가 Fragment에 모든 데이터를 전달하고 클릭을 통해 선택된 데이터의 Position(음악의 순번)을 PlayMainViewActivity에 전달한다.

(Fragment를 통해 PlayMainViewActivity에 전달하지 않고 ListActivity를 거쳐 전달한 이유는 Fragment는 View의 역할, ListActivity는 Controller의 역할로 나누기 위해 Interface를 사용했다.)


문제점 및 해결

처음 설계 때, ListActivity에서 PlayMainViewActivity로 데이터를 전달할 때 Model(Music)을 전달했다. 

하지만 BaseActivity를 통해 ListActivity와 PlayMainViewActivity 모두 Model(Music)의 데이터를 가지고 있기 때문에 Position만 전달하는 것이 효율적이라고 생각해 설계를 변경하였다.

변경 전

변경 후


소스

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class PlayMainViewActivity extends BaseActivity {
    // ...
    public void initData() {
        // Intent를 통해 position을 전달 받음
        currentPosition = getIntent().getIntExtra("position"0);
        
        // 전달 받은 position으로 현재 음악 설정
        currentMusic = musicDataController.getList()
                                          .get(currentPosition);
 
        // PlayerController에 현재 음악 설정
        PlayerController playerController = PlayerController.getInstance();
        playerController.setMusic(this, currentMusic.getMusicUri());
    }
    // ...
}
cs

스크린 샷

동영상이 아니라 알수 없지만 App이 종료되면 음악도 함께 종료되버린다. 이러한 문제점은 다음 포스팅에서 해결할 예정이다.

 

 

 

#안드로이드 음악 플레이어 #안드로이드 mp3 #안드로이드 프로젝트  #앱개발 #모바일앱개발 #어플개발

공유

댓글