음악 플레이어 재생목록이 사라지는 이유

인기 있는 안드로이드 음악 플레이어의 1점 리뷰를 읽어 보면 가장 많이 나오는 불만이 하나 있습니다. "재생목록이 사라졌어요." 업데이트 뒤에, 재부팅 뒤에, 때로는 아무 이유 없이. 이건 버그 하나가 아닙니다. 서로 다른 세 가지 설계이고, 각각 다른 방식으로 망가집니다.

원인 1: 재생목록을 시스템 미디어 스토어에 저장했다

예전 플레이어들은 재생목록을 안드로이드의 공용 미디어 데이터베이스, 즉 노래 목록이 있는 그 DB에 썼습니다. 다른 앱도 볼 수 있어서 편했죠. 하지만 약했습니다. 안드로이드는 이 DB를 여러 번 갈아엎었고, 미디어 재스캔이 항목을 떨어뜨리기도 하고, 안드로이드 10부터는 재생목록 부분 자체가 폐기됐습니다. 앱 업데이트가 아니라 시스템 업데이트 뒤에 사라졌다면 이 원인일 가능성이 큽니다.

원인 2: 곡을 파일 경로로 참조했다

재생목록은 결국 곡 목록입니다. 앱이 각 곡을 파일 경로(/storage/emulated/0/Music/album/01.mp3)로 저장했는데 나중에 폴더를 옮기거나 이름을 바꾸거나 SD카드로 복사하면, 모든 항목이 아무것도 가리키지 않게 됩니다. 재생목록은 남아 있지만 비어 있거나 앱이 조용히 없는 줄을 지웁니다. 내부 저장소와 SD카드 사이 이동이 전형적인 방아쇠예요.

원인 3: 재생목록이 캐시나 설정 파일에 있었다

가장 싸게 재생목록을 저장하는 방법은 앱 설정이나 캐시에 직렬화해 넣는 겁니다. 안드로이드는 저장공간이 부족하면 캐시를 지울 수 있고, 개발자가 형식을 바꾸면 업데이트가 설정을 초기화하기도 합니다. 앱 업데이트 직후 사라졌는데 변경사항에 아무 말이 없었다면 보통 이 경우입니다.

내 경우는 어느 쪽인지 알아보기

재생목록을 영구적으로 만들려면 플레이어가 해야 할 일

  1. 재생목록을 앱 자체 데이터베이스(SQLite/Room)에 저장한다. 설정 파일도, 공용 미디어 스토어도 아니다.
  2. 곡을 미디어 스토어의 안정적인 ID로 참조하고, 파일이 잠시 없어도 행을 지우지 않는다. 파일이 돌아오면 재생목록도 그대로 돌아온다.
  3. 업데이트에서 DB를 절대 지우지 않는다. 마이그레이션은 하되 초기화는 없다.
  4. 안드로이드 앱 백업에 DB를 포함시켜, 새 폰에서 앱과 함께 재생목록이 복원되게 한다.

플레이(Plaay)는 이렇게 합니다

플레이는 재생목록, 즐겨찾기, 재생 횟수를 폰 안의 자체 데이터베이스에 보관합니다. 곡은 안정적인 미디어 ID로 참조하고, 파일이 없으면 그 행을 숨길 뿐 지우지 않습니다. 업데이트로 DB를 초기화하지 않고, 마지막 큐와 재생 위치를 몇 초마다 저장해서 재시작해도 같은 곡, 같은 초로 돌아옵니다.

폰에 있는 음악을 바로 재생하는 무료 플레이어

Google Play에서 Plaay 받기