Skip to content

AndroidStudyOrg/MusicPlayer

Repository files navigation

MusicPlayer

음악재생 앱

  • 백그라운드에서 기능 실행
  • 음원 재생
  • Device Event Catch (네트워크 상태 변경, 전원 연결, 배터리 사용량 체크 등..)

백그라운드 안에서 앱의 기능을 사용하고, Device Event를 Catch 할 수 있다

  • MediaPlayer를 이용해 음원 재생
  • Service를 이용해 음원 재생
  • Notification에 음원 컨트롤러 제공
  • BroadcastReceiver를 이용해 Low_Battery 이벤트 Catch

MediaPlayer

Service (4대 컴포넌트 중 하나)

  • 백그라운드에서 오래 실행되는 작업을수행할 수 있는 애플리케이션 구성 요소(UI 제공 X)
  • 다른 애플리케이션 구성 요소(Activity, BroadcastReceiver 등)가 시작할 수 있으며, 유저가 다른 앱을 실행하더라도 백그라운드에서 계속 실행할 수 있도록 해준다
  • 음악을 재생하거나 파일 I/O 와 같은 작업을 수행 가능
  • 총 3가지 유형: 포그라운드, 백그라운드, 바인드
    • 포그라운드: 백그라운드에서 실행은 맞지만 사용자에게 잘 보여야한다. 재생, 일시정지, 다음 곡, 이전 곡 등 사용자와 상호작용을 해야하기 때문에 이러한 서비스를 포그라운드 서비스라고 한다
      • �음악을 재생하는 등의 서비스는 포그라운드 서비스를 이용하는 것이 좋다. 사용자가 알아야하는 서비스는 안드로이드가 임의로 서비스를 종료하지 않기 때문에
      • 단순 백그라운드 서비스를 사용한다면 사용자와 상호작용이 없다고 간주하여 임의로 서비스가 종료될 수 있다
    • 백그라운드: 사용자에게 직접 보이지 않는 작업 즉, 아예 보일 필요가 없는 작업을 의미한다
    • 바인드: 포그라운드/백그라운드와는 다르게 서비스를 등록하는 곳, 그리고 서비스 2가지가 서로 통신이 가능하다. 즉, 양방향 통신을 가능하게 한다. 바인딩이 해제되면 서비스가 소멸되고, 바인딩이 생성되면 서비스가 생성된다

Notification (알림)

  • 상태표시줄을 아래로 내렸을 때 나오는 알림창들
  • 포그라운드 서비스는 Notification이 필수
  • PendingIntent
    • Intent 객체 주변을 감싸는 래퍼
    • 외부 애플리케이션에 권한을 허가하여 안에 들어있는 Intent를 마치 본인 앱의 자체 프로세스에서 실행하는 것처럼 사용하게 하는 것
    • 본 프로젝트에서는 알림으로 어떠한 작업을 수행할 때 Intent가 실행되도록 선언
  • Intent Flag
    • Notification에서 알림 자체를 클릭했을 때 앱을 어떻게 실행할지
    • 본 프로젝트에서는 flag = Intent.FLAG_ACTIVITY_SINGLE_TOP 사용. 즉, 실행됐던 Activity를 그대로 재사용 하겠다

BroadcastReceiver (4대 컴포넌트 중 하나)

  • Android 앱에서 게시, 구독 디자인 패턴과 유사한 브로드캐스트 메시지를 받거나 보낼 수 있다
  • 비행기 탑승 모드가 켜져있는지 아닌지, 배터리가 충분한지 아닌지 등을 받아올 수 있다

About

음악재생 앱

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages