メインコンテンツまでスキップ

8. ダウンロードイベント/コールバック

お知らせ

このドキュメントは機械翻訳で作成された下書きであり、現在レビュー中です。機械翻訳の特性上、一部の内容が不正確であったり、韓国語の原文と異なる場合があります。より正確な情報については、韓国語のドキュメントをご参照ください。

ダウンロードパイプラインの実行中に発生するトラフィック状態の変化と DRM 検証イベントをアプリケーションレイヤーへ通知するコールバックインターフェースの連携方法を説明します。 SDK は役割に応じて、大きく 2 種類のリスナーコールバックインターフェースを提供します。


ダウンロード進行イベントリスナー

MultiKollusStorageListenerを実装して、ファイルのバックグラウンド受信の進行状態および完了/失敗を追跡します。

各コールバックメソッドは、状態変化をリアルタイムに反映しているKollusContentの最新オブジェクトソースとともに渡されます。 リアルタイムの進行率情報は、受信したオブジェクト内のcontent.getDownloadPercent()プロパティ値、またはcontent.getReceivingSize() / content.getFileSize()の演算を通じて直接取得できます。

public interface MultiKollusStorageListener {
void onComplete(KollusStorage storage, KollusContent content);
void onProgress(KollusStorage storage, KollusContent content);
void onError(KollusStorage storage, KollusContent content, int nErrorCode);
}

DRM イベントリスナー

MultiKollusPlayerDRMListenerを実装して、DRM 検証結果と失効イベントを受信します。

public interface MultiKollusPlayerDRMListener {
int DCB_INFO_DELETE = 0; // Force deletion of content due to kind2 or kind3 response
int DCB_INFO_EXPIRED = 1; // Force expiration due to kind3 response
int DCB_INFO_RESET = 2; // Content reset due to kind3 response

void onDRM(KollusStorage storage, String request, String response);
void onDRMInfo(KollusStorage storage, KollusContent content, int nInfoCode);
}
参考文書

コールバック内部の分岐条件にバインドされるkind1, kind2, kind3の詳細仕様は、DRM Download Callbackドキュメントを参照してください。


イベント・コールバック対応表

標準イベント実際のコールバック位置
ダウンロード開始storage.download(mck)メソッドが 0 以上を返した直後
進行率変更MultiKollusStorageListener.onProgress(storage, content)
ダウンロード一時停止専用コールバックなし(キャンセルと同様)
ダウンロード再開専用コールバックなし(開始と同様)
ダウンロード完了MultiKollusStorageListener.onComplete(storage, content)
ダウンロード失敗MultiKollusStorageListener.onError(storage, content, errorCode)
ライセンス失効MultiKollusPlayerDRMListener.onDRMInfo(storage, content, DCB_INFO_EXPIRED)
ライセンス更新結果updateDownloadDRMInfo呼び出し時に渡したKollusPlayerDRMUpdateListener

リスナーコールバックの登録と解除

Android コンポーネント(Activity/Service)のライフサイクルに合わせてリスナーを登録・解除する必要があります。

@Override
protected void onCreate(...) {
...
multiStorage.registerKollusStorageListener(mStorageListener);
multiStorage.registerKollusPlayerDRMListener(mDRMListener);
}

@Override
protected void onDestroy() {
multiStorage.unregisterKollusStorageListener(mStorageListener);
multiStorage.unregisterKollusPlayerDRMListener(mDRMListener);
...
}