본문으로 건너뛰기

7. 다운로드 콘텐츠 삭제

오프라인 저장소에 보관된 다운로드 콘텐츠 파일을 안전하게 삭제하고 디스크 공간을 확보하는 제어 방법을 설명합니다.

이 문서의 모든 예제 코드는 공식 샘플 앱인 kollus_player_v2_android를 바탕으로 작성되었습니다.


단일 콘텐츠 삭제

unload 메서드를 사용하여 메모리 버퍼와 로컬 디스크에 저장된 콘텐츠 파일을 동시에 정리합니다.

KollusStorage storage = multiKollusContent.getKollusStorage();
String mck = multiKollusContent.getKollusContent().getMediaContentKey();
storage.unload(mck); // 태스크 메모리 해제 및 물리 파일 제거 프로세스를 시작합니다.

unload 메서드 동작

unload는 사용 목적에 따라 아래 2가지 제어 명령을 동시에 수행합니다.

  • 다운로드 완료 상태일 때: 로컬 디스크에 저장된 오프라인 미디어 파일을 완전히 삭제합니다.
  • 다운로드 진행 중 상태일 때: 진행 중인 백그라운드 전송 태스크 세션을 즉시 취소하고 임시 파편 파일을 정리합니다.

다운로드 콘텐츠 전체 삭제

전체 디스크 목록 조회를 통해 확보된 모든 다운로드 콘텐츠 객체를 순회하며 unload 프로세스를 연속 실행합니다. 파라미터에 -1 지정 시 연결된 모든 디스크의 콘텐츠를 일괄 로드합니다.

ArrayList<MultiKollusContent> all = multiStorage.getDownloadList(-1);
for (MultiKollusContent c : all) {
KollusStorage st = c.getKollusStorage();
st.unload(c.getKollusContent().getMediaContentKey());
}

만료 콘텐츠 자동 정리

SDK가 DRM 콜백 kind: 2, kind: 3의 응답으로 백그라운드 환경에서 미디어 파일을 자동으로 삭제하는 케이스가 존재합니다.

MultiKollusPlayerDRMListener.onDRMInfo 콜백으로 DCB_INFO_DELETE(강제 삭제) 신호가 도착했을 때, SDK는 이미 로컬 파일을 지운 상태입니다. SDK가 파일을 먼저 삭제한 후 앱에 사후 통지하는 구조이므로, 앱 레이어에서는 별도의 삭제 API를 호출할 필요 없이 UI 목록만 새로고침(Refresh)하면 됩니다.


디바이스 저장소 부족 시 예외 처리

디바이스의 디스크 잔여 용량이 부족할 때, SDK가 임의로 다른 완료 파일을 강제 정리하거나 스스로 공간을 확보해 주지는 않습니다. 다운로드 시작 전에 용량을 체크하여 사용자 액션을 유도하는 방어 코드 패턴을 권장합니다.

  • 사전 용량 제한 체크: 다운로드 시작 직전 가용 용량 < (콘텐츠 파일 크기 + 150MB) 조건을 검증하여, 임계치에 미달할 경우 다운로드를 반려하고 "디바이스 저장 공간 부족" 안내 다이얼로그를 표시합니다.
  • 정리 옵션 제공: 사용자 편의를 위해 화면 내에 "최근 30일 동안 시청하지 않은 파일 정리" 또는 "시청 완료한 콘텐츠 일괄 삭제"와 같은 메뉴를 제공하는 것이 좋습니다.