KollusStorage
KollusStorage Class
com.kollus.sdk.media.KollusStorage
콘텐츠의 다운로드, 캐시 관리, DRM 정보 업데이트 및 각종 이벤트 리스너를 총괄하는 스토리지 관리 클래스입니다.
Interfaces
interface DrmSessionManagerListenerinterface OnKollusStorageDeviceListenerinterface OnKollusStorageListener
Public Methods
KollusStorage(Context context)void cancelLoad()int checkLiveStream(String url)void clearCache()String decrypt(String encData)int download(String mediaContentKey)void finish()ArrayList<KollusContent> getDownloadContentList()KollusContent getDownloadKollusContent(String path)boolean getKollusContent(KollusContent content, String mediaContentKey) throws IllegalStateExceptionString getLastError()long getNativeInstance()String getRootPath()long getUsedSize(int type)String getVersion()int initialize(String key, String expireDate, String packageName)boolean isReady()int load(String path, String extraDrmParam, KollusContent content)void registerDrmSessionManagerListenerList(DrmSessionManagerListener listener)void registerKollusPlayerCallbackListener(KollusPlayerCallbackListener listener)void registerKollusPlayerDRMListener(KollusPlayerDRMListener listener)void registerKollusPlayerThumbnailListener(KollusPlayerThumbnailListener listener)void registerKollusStorageListener(OnKollusStorageListener listener)synchronized void releaseInstance()int remove(String mediaContentKey)void removeDrmSessionManagerListenerList(DrmSessionManagerListener listener)void sendStoredLMS(StoredLMSListener listener)void setCacheSize(int cacheSizeMB)int setDevice(String storagePath, boolean bTablet)void setDeviceASync(String storagePath, boolean bTablet, OnKollusStorageDeviceListener listener)void setNetworkTimeout(int timeout, int retryCount)int unload(String mediaContentKey)void unregisterKollusPlayerCallbackListener(KollusPlayerCallbackListener listener)void unregisterKollusPlayerDRMListener(KollusPlayerDRMListener listener)void unregisterKollusPlayerThumbnailListener(KollusPlayerThumbnailListener listener)void unregisterKollusStorageListener(OnKollusStorageListener listener)void updateDownloadDRMInfo(KollusPlayerDRMUpdateListener listener, boolean bAll)void updateDownloadDRMInfo(KollusPlayerDRMUpdateListener listener, ArrayList<String> mckList)
Static Public Methods
static synchronized KollusStorage getInstance(Context context)
Static Public Properties
static final int TYPE_CACHE = 0static final int TYPE_DOWNLOAD = 1static final int TYPE_ALL = 2
Protected Methods
int downloadFile(String srcPath, String dstPath)int downloadThumbnail(String srcPath, String dstPath)String getCallback(String customer, String callbackUrl, String postData)String getMediaInfoJson(Uri uri)String getNoKollusDownloadPath()String getNoKollusStreamPath()void registerKollusPlayerLMSListener(KollusPlayerLMSListener listener)void sendCallback(String customer, String url)void unregisterKollusPlayerLMSListener(KollusPlayerLMSListener listener)
Method Details
void com.kollus.sdk.media.KollusStorage.cancelLoad()
현재 진행 중인 로드(Load) 작업을 중단합니다. 다운로드 취소 시 해당 메서드 호출 후 unload를 수행해야 합니다.
int com.kollus.sdk.media.KollusStorage.checkLiveStream(String url)
해당 경로가 현재 라이브 방송 주소인지 확인합니다.
- 파라미터
url: 방송 URL
- 반환값: 라이브 여부 확인 코드
void com.kollus.sdk.media.KollusStorage.clearCache()
스트리밍 재생 시 사용된 임시 캐시 데이터를 모두 삭제합니다. (다운로드 콘텐츠는 삭제되지 않습니다.)
int com.kollus.sdk.media.KollusStorage.download(String mediaContentKey)
로드된 콘텐츠의 미디어 콘텐츠 키를 이용해 다운로드를 시작합니다.
- 파라미터
mediaContentKey: 미디어 콘텐츠 키
- 반환값: 에러 코드 (참고: ErrorCodes)
void com.kollus.sdk.media.KollusStorage.finish()
Native 영역의 스토리지 자원을 회수합니다.
ArrayList<KollusContent> com.kollus.sdk.media.KollusStorage.getDownloadContentList()
현재 다운로드된 전체 콘텐츠 리스트를 반환합니다.
- 반환값: 다운로드된 콘텐츠 리스트
KollusContent com.kollus.sdk.media.KollusStorage.getDownloadKollusContent(String path)
지정된 경로에 해당하는 다운로드 콘텐츠 정보를 조회합니다.
- 파라미터
path: 콘텐츠 경로
- 반환값: 콘텐츠 정보
static synchronized KollusStorage com.kollus.sdk.media.KollusStorage.getInstance(Context context)
KollusStorage의 싱글톤 인스턴스를 반환합니다.
- 파라미터
context: 애플리케이션 컨텍스트
- 반환값:
KollusStorage인스턴스
boolean com.kollus.sdk.media.KollusStorage.getKollusContent(KollusContent content, String mediaContentKey) throws IllegalStateException
미디어 콘텐츠 키를 통해 특정 콘텐츠 정보를 획득합니다.
- 파라미터
content: 정보를 담을 빈 객체mediaContentKey: 미디어 콘텐츠 키
- 반환값: 정보 획득 성공 여부
String com.kollus.sdk.media.KollusStorage.getLastError()
마지막으로 발생한 에러의 메시지를 반환합니다.
- 반환값: 에러 메시지
String com.kollus.sdk.media.KollusStorage.getMediaInfoJson(Uri uri)
Internal SDK Only 지정된 URI의 미디어 정보를 JSON 형태로 조회합니다.
- 파라미터
uri: 미디어 URI
- 반환값: 미디어 정보 (JSON 데이터)
long com.kollus.sdk.media.KollusStorage.getNativeInstance()
Native 영역에서 관리되는 KollusStorage 엔진의 실제 인스턴스 핸들(포인터) 값을 반환합니다.
- 반환값: Native 인스턴스 주소 값 (Handle)
String com.kollus.sdk.media.KollusStorage.getRootPath()
현재 설정된 콘텐츠 저장 루트 경로를 반환합니다.
- 반환값: 현재 설정된 저장 위치 경로
long com.kollus.sdk.media.KollusStorage.getUsedSize(int type)
지정된 데이터 타입의 총 사용 용량을 조회합니다.
- 파라미터
typeTYPE_CACHE(0): 스트리밍 재생 시 생성된 캐시 용량TYPE_DOWNLOAD(1): 로컬에 저장된 다운로드 콘텐츠 총 용량TYPE_ALL(2): 모든 타입의 총 용량
- 반환값: 현재 사용 중인 총 용량
String com.kollus.sdk.media.KollusStorage.getVersion()
SDK 라이브러리의 버전 정보를 반환합니다.
- 반환값: SDK 버전
int com.kollus.sdk.media.KollusStorage.initialize(String key, String expireDate, String packageName)
SDK 라이브러리를 초기화합니다.
- 파라미터
key: 발급받은 키expireDate: 만료일 (YYYY/MM/DD)packageName: 앱 패키지 이름
- 반환값: 에러 코드 (참고: ErrorCodes)
boolean com.kollus.sdk.media.KollusStorage.isReady()
스토리지 매니저가 사용 가능한 상태(Device 설정 완료)인지 확인합니다.
- 반환값
true: 사용 가능false: 사용 불가
int com.kollus.sdk.media.KollusStorage.load(String path, String extraDrmParam, KollusContent content)
다운로드할 콘텐츠 정보를 로드합니다.
- 파라미터
path: 다운로드할 콘텐츠 경로extraDrmParam: 동적 DRM 다운로드 콜백 / 플레이 콜백 인자content: 정보를 담을 객체
- 반환값: 에러 코드 (참고: ErrorCodes)
void com.kollus.sdk.media.KollusStorage.registerKollusPlayerCallbackListener(KollusPlayerCallbackListener listener)
KollusPlayerCallbackListener를 등록합니다.
- 파라미터
listener: 이벤트를 처리할 리스너 인스턴스
void com.kollus.sdk.media.KollusStorage.registerKollusPlayerDRMListener(KollusPlayerDRMListener listener)
KollusPlayerDRMListener를 등록합니다.
- 파라미터
listener: 이벤트를 처리할 리스너 인스턴스
void com.kollus.sdk.media.KollusStorage.registerKollusPlayerLMSListener(KollusPlayerLMSListener listener)
KollusPlayerLMSListener를 등록합니다.
- 파라미터
listener: 이벤트를 처리할 리스너 인스턴스
void com.kollus.sdk.media.KollusStorage.registerKollusPlayerThumbnailListener(KollusPlayerThumbnailListener listener)
KollusPlayerThumbnailListener를 등록합니다.
- 파라미터
listener: 이벤트를 처리할 리스너 인스턴스
void com.kollus.sdk.media.KollusStorage.registerKollusStorageListener(OnKollusStorageListener listener)
OnKollusStorageListener를 등록합니다.
- 파라미터
listener: 이벤트를 처리할 리스너 인스턴스
synchronized void com.kollus.sdk.media.KollusStorage.releaseInstance()
사용 중인 KollusStorage 인스턴스 자원을 명시적으로 해제합니다.
int com.kollus.sdk.media.KollusStorage.remove(String mediaContentKey)
로컬에 저장된 다운로드 콘텐츠를 삭제합니다.
- 파라미터
mediaContentKey: 미디어 콘텐츠 키
- 반환값: 에러 코드 (참고: ErrorCodes)
void com.kollus.sdk.media.KollusStorage.sendStoredLMS(StoredLMSListener listener)
네트워크 문제 등으로 미처 전송하지 못한 로컬 저장 LMS 데이터를 일괄 전송합니다.
- 파라미터
listener: 이벤트를 처리할 리스너 인스턴스
void com.kollus.sdk.media.KollusStorage.setCacheSize(int cacheSizeMB)
스트리밍 시 사용할 캐시 메모리 크기를 설정합니다. setDevice 또는 setDeviceASync 호출 전에 설정해야 합니다.
- 파라미터
cacheSizeMB: 캐시 크기 (MB)
int com.kollus.sdk.media.KollusStorage.setDevice(String storagePath, boolean bTablet)
스토리지 루트 경로와 디바이스 유형을 설정합니다.
- 파라미터
storagePath: 스토리지 매니저가 사용할 루트 경로bTablet: 태블릿 여부 (true: 태블릿)
void com.kollus.sdk.media.KollusStorage.setDeviceASync(String storagePath, boolean bTablet, OnKollusStorageDeviceListener listener)
스토리지 설정을 비동기 방식으로 수행합니다.
- 파라미터
storagePath: 스토리지 매니저가 사용할 루트 경로bTablet: 태블릿 여부 (true: 태블릿)listener: 설정 완료를 수신할 리스너 인스턴스
void com.kollus.sdk.media.KollusStorage.setNetworkTimeout(int timeout, int retryCount)
네트워크 Timeout 시간과 재시도 횟수를 설정합니다.
- 파라미터
timeout: 제한 시간 (sec)retryCount: Timeout 발생 시 재시도 횟수
int com.kollus.sdk.media.KollusStorage.unload(String mediaContentKey)
로드된 인덱스를 해제합니다. 다운로드 취소 시 cancelLoad 후 호출합니다.
- 파라미터
mediaContentKey: 미디어 콘텐츠 키
- 반환값: 에러 코드 (참고: ErrorCodes)
void com.kollus.sdk.media.KollusStorage.unregisterKollusPlayerCallbackListener(KollusPlayerCallbackListener listener)
KollusPlayerCallbackListener를 해제합니다.
- 파라미터
listener: 해제할 리스너 인스턴스
void com.kollus.sdk.media.KollusStorage.unregisterKollusPlayerDRMListener(KollusPlayerDRMListener listener)
KollusPlayerDRMListener를 해제합니다.
- 파라미터
listener: 해제할 리스너 인스턴스
void com.kollus.sdk.media.KollusStorage.unregisterKollusPlayerLMSListener(KollusPlayerLMSListener listener)
KollusPlayerLMSListener를 해제합니다.
- 파라미터
listener: 해제할 리스너 인스턴스
void com.kollus.sdk.media.KollusStorage.unregisterKollusPlayerThumbnailListener(KollusPlayerThumbnailListener listener)
KollusPlayerThumbnailListener를 해제합니다.
- 파라미터
listener: 해제할 리스너 인스턴스
void com.kollus.sdk.media.KollusStorage.unregisterKollusStorageListener(OnKollusStorageListener listener)
OnKollusStorageListener를 해제합니다.
- 파라미터
listener: 해제할 리스너 인스턴스
void com.kollus.sdk.media.KollusStorage.updateDownloadDRMInfo(KollusPlayerDRMUpdateListener listener, boolean bAll)
모든 콘텐츠 또는 만료된 콘텐츠의 DRM 정보를 일괄 업데이트합니다.
- 파라미터
listener: 업데이트 진행 상태 및 결과 수신용 인터페이스 인스턴스bAll: 업데이트 범위 설정값 (true: 전체 콘텐츠,false: 만료된 콘텐츠 한정)
void com.kollus.sdk.media.KollusStorage.updateDownloadDRMInfo(KollusPlayerDRMUpdateListener listener, ArrayList<String> mckList)
특정 미디어 콘텐츠 키 리스트에 해당하는 콘텐츠들의 DRM을 업데이트합니다.
- 파라미터
listener: 업데이트 진행 상태 및 결과 수신용 인터페이스 인스턴스mckList: 업데이트 대상 미디어 콘텐츠 키 리스트
Property Details
| 속성 | 값 | 설명 |
|---|---|---|
TYPE_CACHE | 0 | 스트리밍 재생 시 생성되는 캐시 데이터 |
TYPE_DOWNLOAD | 1 | 로컬 저장소에 저장되는 다운로드 콘텐츠 데이터 |
TYPE_ALL | 2 | 모든 타입의 데이터 (캐시 + 다운로드) |
OnKollusStorageDeviceListener Interface
com.kollus.sdk.media.KollusStorage.OnKollusStorageDeviceListener
setDeviceASync 메서드 호출을 통한 스토리지 디바이스 설정 프로세스의 진행 상태를 수신하는 인터페이스입니다.
Public Methods
void onDeviceSettingEnd()void onDeviceSettingError(int nErrorCode)void onDeviceSettingStart()
Method Details
void com.kollus.sdk.media.KollusStorage.OnKollusStorageDeviceListener.onDeviceSettingEnd()
디바이스 설정 및 초기화 프로세스가 성공적으로 완료된 시점에 호출됩니다.
void com.kollus.sdk.media.KollusStorage.OnKollusStorageDeviceListener.onDeviceSettingError(int nErrorCode)
디바이스 설정 과정 중 오류가 발생했을 때 호출됩니다. (예: 지정된 경로에 필수 디렉터리 생성 권한이 없거나 저장 공간이 부족한 경우)
- 파라미터
nErrorCode: 발생한 오류의 식별 코드
void com.kollus.sdk.media.KollusStorage.OnKollusStorageDeviceListener.onDeviceSettingStart()
디바이스 설정 프로세스가 시작된 시점에 호출됩니다.
OnKollusStorageListener Interface
com.kollus.sdk.media.KollusStorage.OnKollusStorageListener
콘텐츠 다운로드 프로세스의 상태 변화(진행 중, 완료, 오류 발생) 이벤트를 수신하는 인터페이스입니다.
Public Methods
void onComplete(KollusContent content)void onError(KollusContent content, int errorCode)void onProgress(KollusContent content)
Method Details
void com.kollus.sdk.media.KollusStorage.OnKollusStorageListener.onComplete(KollusContent content)
콘텐츠의 모든 데이터가 로컬 스토리지에 성공적으로 저장된 시점에 호출됩니다.
- 파라미터
content: 콘텐츠 정보
void com.kollus.sdk.media.KollusStorage.OnKollusStorageListener.onError(KollusContent content, int errorCode)
다운로드 과정 중 예기치 않은 오류가 발생하여 중단된 시점에 호출됩니다.
- 파라미터
content: 콘텐츠 정보errorCode: 에러 코드
void com.kollus.sdk.media.KollusStorage.OnKollusStorageListener.onProgress(KollusContent content)
다운로드가 진행되는 동안 주기적으로 호출됩니다.
- 파라미터
content: 콘텐츠 정보