Release Notes

Release Notes

3.0.10

Released date: 2025-11-24

Added APIs

  • 사용자 행동 분석 관련 API 추가

    • 변경이유: finish시 qoe 인스턴스를 초기화 하지 않아서 죽는 현상으로 버그 패치

    • 영향 범위: 없음

    • App 변경여부: 없음

      KollusContent에 아래 API 추가 public String getActionStatsUrl(); public String getActionStatsSecretKey();
  • 챕터 기능 추가

    • 변경이유: finish시 qoe 인스턴스를 초기화 하지 않아서 죽는 현상으로 버그 패치

    • 영향 범위: 없음

    • App 변경여부: 없음

      KollusContent에 아래 API 추가 public String getDefaultChapterLanguage(); public List<ChapterInfo> getChapterInfos(); KollusContent.ChapterInfo 추가 public String getLanguage(); public List<Chapter> getChapters();

Added Features

  • 엣지 서버 접속 시 keep alive 추가

    • 변경이유: 서버 네트워크 자원 효율성 강화

    • 영향 범위: 없음

    • App 변경여부: 없음

Changed Features

  • KollusPlayerLMSListener.onLMS의 response data 변경

    • 변경이유: LMS 데이터의 전송 결과에 소비한 시간 추가. 단순히 디버깅 용도이기에 앱 영향은 없습니다.

    • 영향 범위: 없음

    • App 변경여부: 없음

      변경 전 : {"error":1,"status":"HTTP Code:28"} 변경 후 : {"error":1, "code":28, "time":10005}

Fixed

  • qoe 데이터의 dns lookup, connect, tls hand shake의 값이 추가되어 잘못 올라가는 현상 수정

    • 변경이유: QoE 데이터 오류 수정

    • 영향 범위: 없음

    • App 변경여부: 없음

  • LMS 데이터의 showtime이 간헐적으로 잘못 올라가는 경우 수정

    • 변경이유: LMS 데이터의 showtime이 간헐적으로 음수나 갑자기 튀는 현상이 보고되어 해당 데이터에 오류가 감지되면 이전 값으로 올라가도록 수정

    • 영향 범위: 없음

    • App 변경여부: 없음


3.0.9

Released date: 2025-09-04

Changed Features

  • KollusStorage의 finish 호출 시 죽는 현상 수정

    • 변경이유: finish시 qoe 인스턴스를 초기화 하지 않아서 죽는 현상으로 버그 패치

    • 영향 범위: SDK 3.0.8 적용 고객사 중 KollusStorage의 finish를 사용하는 고객사는 수정된 SDK 적용 필요

    • App 변경여부: 없음


3.0.8

Released date: 2025-08-06

Added APIs

  • Qoe 기능 추가

    • 변경이유: 네트워크 품질 평가를 위한 기능 추가

    • 영향 범위: 없음

    • App 변경여부: 없음

KollusContent에 아래 API 추가 /** * 채널 키를 가져오는 함수 * @return 채널 키 */ public String getChannelKey(); /** * QOE 세션 정보를 보내는 URL * SDK내에서만 사용 * @return 세션 URL */ public String getQoeSessionUrl(); /** * QOE 네트워크 정보를 보내는 URL * * SDK내에서만 사용 * * @return 네트워크 URL */ public String getQoeNetworkUrl(); /** * QOE 재생 정보를 보내는 URL * SDK내에서만 사용 * @return 재생 정보 URL */ public String getPlaybackUrl(); /** * QOE 암호화 키 * SDK내에서만 사용 * @return 암호화 키 */ public String getQoeSecretKey();

Changed Features

  • 라이브 중 방송 종료 시 playback complete이 아닌 -3012(방송 중이 아님)으로 변경

    • 변경이유: 라이브 방송 종료 시 playback complete으로 앱이 종료되어 사용자가 인지할 수 있도록 -3012 에러 팝업 띄우도록 수정

    • 영향 범위: 없음

    • App 변경여부: 없음

  • 16kb page size 지원

    • 변경이유: Android 15부터 16kb page size 지원을 시작해서 선제 대응(기존은 4kb page size였음) 16kb 단말에서 4kb 라이브러리를 사용하면 run time이 앱이 crash가 발생합니다.

    • 영향 범위: 없음

    • App 변경여부: 없음


3.0.7

Released date: 2025-06-12

Fixed

  • 리스너 미등록 시 안정화 코드 추가

    • 변경이유: MediaPlayer.setKollusPlayerLMSListener 미등록 시 crash 현상 발견

    • 영향 범위: 없음

    • App 변경여부: 없음

  • 버퍼링 중에 종료 시 안정성 강화

    • 변경이유: 안정성 강화

    • 영향 범위: 없음

    • App 변경여부: 없음


3.0.6

Released date: 2025-05-16

Added APIs

  • AI 자막
    KollusContents.SubtitleInfo에 아래항목 추가
    public boolean ai;

  • 변경이유: AI 생성자막 여부(true: AI 생성자막, false: 일반자막)

  • 영향 범위: 없음

  • App 변경여부: 없음

Changed Features

  • MediaPlayer에서 setMute 제거

    • 변경이유: KollusMediaPlayer에서 소프트웨어적으로 묵음처리하는 API로 더이상 필요 없음(3.0.4 이후 )

    • 영향 범위: 없음

    • App 변경여부: 없음

Fixed

  • PlayCallback의 비정상 response에 대한 예외처리

    • 변경이유: 일부 고객의 비정상 response에 대한 예외처리 (일본 고객과는 무관)

    • 영향 범위: 없음

    • App 변경여부: 없음


3.0.5

Released date: 2025-04-08

Added APIs

  • 백그라운드 오디오 재생 기능 제어 옵션 항목 추가

    • 변경이유: 백그라운드 재생 시 미디어 알림에 필요 사항 추가

    • 영향 범위: 없음

    • App 변경여부: 없음

    • KollusContent에 아래 API 추가

      /** * 컨텐츠 제공자의 이름을 가져오는 함수 * SDK내에서만 사용 * @return 컨텐츠 제공자 이름 */ public String getContentProvierName(); /** * 백그라운드 재생 관련 사용자 설정을 무시할 지 여부를 가져오는 함수 * @return true이면 사용자 설정과 관계없이 무조건 백그라운드 재생을 허용하지 않는다 * false이면 사용자 설정에 따라서 백그라운드 재생 여부를 판단한다 */ public boolean isDisableBackgroundAudio();

Changed Features

  • DataBase에 있는 LMS 데이터 Async하게 보내도록 수정

    • 변경이유: 못 보낸 LMS 데이터가 있는 경우 Sync하게 데이터를 보내고 있는데 네트워크 이슈로 오래 걸릴 수 있어서 아래의 상황에서 ANR 발생 제거

      • Pause상태에서 Seek시

      • 재생 초기에 종료 시

    • 영향 범위: 없음

    • App 변경여부: 없음


3.0.4

Released date: 2025-03-13

Added Features

  • 에러 수집 고도화

    • KollusContent에 아래 API 추가

      /** * 에러 발생 시 에러 수집할 서버 UAL 주소 * SDK내에서만 사용 * @return UAL 에러 서버 주소 / public String getUalErrorReportUrl(); /* * 에러 발생 시 에러 수집할 서버 주소 * SDK내에서만 사용 * @return 에러 서버 주소 / public String getErrorReportUrl(); /* * 컨텐츠 제공자를 가져오는 함수 * SDK내에서만 사용 * @return 컨텐츠 제공자 / public String getContentProvierKey() ; /* * 에러 발생 시 수집할 서버에 보낼 추가적인 데이터 * SDK내에서만 사용 * @return 추가 데이터 */ public String getErrorAdditionalInfo();

Changed Features

  • 오디오 워터마크 지원 종료

    • 변경이유: 지원 종료

    • 영향 범위: 없음

    • App 변경여부: 제거되는 API를 사용하는 고객

    • KollusMediaPlayer 제거

      • 변경 이유 : 해당 Player는 5.0미만이거나 오디오 워터마크 컨텐츠 재생 시 사용하는 것으로 더이상 필요 없어짐

    • 아래 항목 제거

      • MediaPlayer에서 제거

        • setVolumeLevel

        • enum RENDER_MODE

        • OnCencDrmListener

        • setOnCencDrmListener

        • getPlayerType

        • KollusContent에서 제거

          • getAudioWaterMark

        • Utils에서 제거

          • getPlayerType

          • setRenderType

          • getRenderType

          • enum DecoderType

          • setDecoderType

          • getDecoderType

  • 에러 수집 고도화

    • 변경이유: 미디어 정보를 가져오기 전에 에러 발생 시 에러 코드를 수집하기 위함

    • build.gradle 수정

      • implementation 'com.squareup.okhttp3:okhttp:4.12.0' implementation 'com.squareup.okhttp3:logging-interceptor:4.12.0'
    • KollusStorage 초기화 오류 코드 변경

      • ErrorCodes에서 아래 값 제거

        /** * 인증키 만료 */ public static final int ERROR_EXPIRED_KEY = -2; /** * 인증키 오류 */ public static final int ERROR_INVALID_KEY = -1;
      • ErrorCodes에서 아래 값 추가

        /** * KollusStrage 초기화 시 잘못된 PackageName을 제공함 */ public static int ERROR_INCORRECT_PACKAGE_NAME = -2103; /** * KollusStrage 초기화 시 사용기한 만료 */ public static int ERROR_EXPIRED_AUTH_DATE = -2104; /** * KollusStrage 초기화 시 사용기한 입력포맷이 잘못됨 */ public static int ERROR_INCORRECT_AUTH_DATE = -2105; /** * KollusStrage 초기화 시 인증키가 잘못됨 */ public static int ERROR_INCORRECT_AUTH_KEY = -2106; /** * KollusStrage 초기화 시 인증정보가 모두 입력되지 않았음 */ public static int ERROR_NOT_ENOUGH_AUTH_INFO = -2107;
      • 변경이유: iOS와 오류 코드 맞춤

      • App 변경 여부: KollusStorage.initialize의 에러 코드값을 체크 시 수정된 에러코드로 체크해야 함


3.0.3

Released date: 2025-01-14

Added APIs

  • 다음회 버튼 show/hide 옵션 추가

    • KollusContent에 아래 API 추가
      /**
      * 다음회 자동재생이어도 getNextEpisodeShowTime의 시간 내에 있는 경우 UI 버튼을 보여줄 지 여부를 가져오는 함수
      * @return 다음 회 버튼 보여줄지 여부(true:보여줌, false:숨김)
      */
      public boolean isNextEpisodeShowButton();

    • 변경이유: 자동으로 다음회차 재생 옵션을 켠 경우 다음회 버튼 미노출되는데 고객 요구로 다음회 버튼 노출을 위함.
      SDK 사용하는 고객사는 직접 구현해도 무방합니다.

    • 영향 범위: No(해당 flag 값을 필요로 하는 고객사에만 적용 필요)

    • App 변경여부: No(해당 flag 값을 필요로 하는 고객사에만 적용 필요)

Added Features

  • 컨텐츠별 미디어인포 복호화 키 적용

    • 변경이유: 보안강화

    • 영향 범위: No

    • App 변경여부: No

  • MultiDRM 컨텐츠 다음회차 기능 지원

    • 변경이유: 기능추가

    • 영향 범위: MultiDRM 컨텐츠 사용고객

    • App 변경여부: No

Fixed

  • onDetectDebuggingMode을 사용하여 앱 종료 시 1분 후에 앱 크래시 되는 현상 수정

    • 변경이유: 버그수정

    • 영향 범위: 해당 API를 사용하여 앱을 종료하는 고객

    • App 변경여부: Yes


3.0.2

Released date: 2024-11-07

Added APIs

  • KollusContent에 public boolean isIgnoreZero() 추가

    • 재생URL의 Query parameter로 전달된 ign_z flag의 값을 반환합니다.(default: false)

    • 변경이유: 이어보기 정보가 앞뒤로 일정시간 미만이면(KollusPlayer는 10초미만) 처음부터 재생하는 시나리오를 무시하고 이어보기를 원하는 고객사의 요구로 추가

    • 영향 범위: No(해당 flag 값을 필요로 하는 고객사에만 적용 필요)

    • App 변경여부: No(해당 flag 값을 필요로 하는 고객사에만 적용 필요)

Added Features

  • KollusContent에 public boolean isIgnoreZero() 추가

    • 재생URL의 Query parameter로 전달된 ign_z flag의 값을 반환합니다.(default: false)

    • 변경이유: 이어보기 정보가 앞뒤로 일정시간 미만이면(KollusPlayer는 10초미만) 처음부터 재생하는 시나리오를 무시하고 이어보기를 원하는 고객사의 요구로 추가

    • 영향 범위: No(해당 flag 값을 필요로 하는 고객사에만 적용 필요)

    • App 변경여부: No(해당 flag 값을 필요로 하는 고객사에만 적용 필요)

Changed Features

  • Kollus DRM 및 컨텐츠 보안 강화

    • 변경이유: Kollus 보안 강화

    • 영향 범위: Kollus 사용 고객 (V/G 암호화 버전 업그레이드 및 DRM 암/복호화 모듈 업데이트)

    • App 변경여부: No

Fixed

  • AI 배속 안되는 현상 수정

    • 변경이유: media3부터 발생하는 버그 수정

    • 영향 범위: AI 배속 기능 사용 고객

    • App 변경여부: No

  • 아래와 같은 구글의 앱 취약성 경고 대응

    • 앱에 암시적인 내부 인텐트 취약성이 있습니다.
      com.teruten.mcm.module.a0.F

    • 변경이유: 구글 앱 취약성 경고로 인한 모듈 업데이트

    • 영향 범위: Google Play Console에서 해당 경고 발생시 업데이트 필요

    • App 변경여부: No


3.0.1

Released date: 2024-09-11

Added APIs

  • MediaPlayer에 API 추가

    • /** * LMS데이터를 보낼 때 앱상태가 background 또는 foreground될 때의 시간도 같이 보내기 위해 앱 상태가 변경되는 시점을 저장하는 함수 * LMS Callback 설정에 {APP_STATUS_JSON}를 추가한 경우 유효합니다. * @param status 앱 상태 */ public void setAppStatus(@APP_STATUS int status); // 1 : background, 2 : foreground
    • 변경 이후 : 백그라운드에 사용자가 머물러 있는 시간을 계산하위 위한 기능 추가

    • 영항 볌위 : 신규 API이므로 영향 없음

    • 앱 변경 여부 : 필요 없음

Fixed

  • Seek 중에 종료 시 NullPointerException 대응(Play Console의 vitals 대응)

    • 변경 이유 : SDK 3.0.0에서 확인된 버그 fix

    • 영향 범위 : SDK 3.0.0을 적용한 앱의 경우 영향 발생, 3.0.1 적용 필수

    • 앱 변경 여부 : 필요 없음


3.0.0

Released date: 2024-08-29

Changed APIs

  • KollusStorage의 setDevice/setDeviceASync 변경

    • 변경 사유 : 자체적인 playerId를 사용하기를 원하는 요구사항으로 인해서 변경

    • 변경전

      • public int setDevice(String storagePath, String playerId, String playerIdMd5, boolean bTablet);

      • public void setDeviceASync(String storagePath, String playerId, String playerIdMd5, boolean bTablet, OnKollusStorageDeviceListener listener);

    • 변경후

      • public int setDevice(String storagePath, boolean bTablet);

      • public void setDeviceASync(String storagePath, boolean bTablet, OnKollusStorageDeviceListener listener);

Added Features

  • ExoPlayer2에서 media3로 업그레이드

    • 변경 사유 : ExoPlayer2를 더이상 구글에서 지원을 안함

  • MultiDRM 라이브러리 변경

    • 변경 사유 : media3로 변경되어 수정

Fixed

  • SRT 자막 개행 문자 누락에 대한 예외처리

  • 종료 시 nscreen 데이터에만 ai관련 정보 송출

Warning

  • 자체 PlayerId를 사용하는 경우(Utils.setPlayerId 호출하는 경우) KollusStorage의 setDevice/setDeviceASync호출 전에 Utils.setPlayerId로 PlayerId를 설정해야 합니다.

  • 프로가드 수정

    • exoplayer2 항목 제거

    • 아래 항목추가

-dontwarn androidx.media3.** -keep interface androidx.media3.** { *; }
  • MultiDRM 라이브러리 변경

    • 이전 버전에서 다운로드 받은 MultiDRM 컨텐츠는 호환되지 않습니다. 즉, 다운로드 목록에는 표시는 되지만 재생은 할 수 없습니다.

    • minSDK가 21로 올라갑니다.

    • PallyconWVMSDK.aar를 서브프로젝트로 추가를 하든 libs폴더에 추가를 해야 합니다.

    • build.gradle 수정

      • MultiDRM 라이브러리가 코틀린으로 되어 있어서 코틀린 설정을 해야 합니다.

      • //apply plugin: 'com.android.application' plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' id 'kotlin-android' id 'kotlin-parcelize' }
  • media3 관련 dependencies 추가

    • build.gradle 수정

    • dependencies { api ('com.google.guava:guava:31.1-android') { // Exclude dependencies that are only used by Guava at compile time // (but declared as runtime deps) [internal b/168188131]. exclude group: 'com.google.code.findbugs', module: 'jsr305' exclude group: 'org.checkerframework', module: 'checker-compat-qual' exclude group: 'org.checkerframework', module: 'checker-qual' exclude group: 'com.google.errorprone', module: 'error_prone_annotations' exclude group: 'com.google.j2objc', module: 'j2objc-annotations' exclude group: 'org.codehaus.mojo', module: 'animal-sniffer-annotations' } compileOnly 'com.google.errorprone:error_prone_annotations:2.15.0' compileOnly 'org.checkerframework:checker-qual:3.13.0' compileOnly 'org.checkerframework:checker-compat-qual:2.5.0' implementation "androidx.security:security-crypto-ktx:1.1.0-alpha03" ... }

2.0.23

  1. AI 배속 스크립트 패스 오류에 대한 방어 코드 추가


2.0.22

  1. 네트워크가 좋지 않을때 재생 시도 중 ExoPlayer에서 오류 발생 시 ANR 발생되는 현상 수정

  2. -1007 에러 발생하는 상황의 에러코드 분리
    -1018 : KollusStorage 인자 오류 또는 재생 패스 오류 시
    -1019 : KollusStorage 초기화 안된 경우

  3. SocketTimeoutException발생 시 -1010에서 -8028로 변경


2.0.21

  1. 구글 미인증 단말에 Pallycon 라이브러리 초기화 죽는 문제 수정
    단말명으로 초기화 skip


2.0.20

  1. AI 배속 콘텐츠 정보 N-screen에 추가

  2. Kollus UserAgent에 크롬OS 추가


2.0.19

  1. 다음회차 추가
    KollusContent에 아래 API 추가
    /**

    • 다음회차 Callback URL 가져오는 함수

    • @return 다음회차 Callback URL
      */
      public String getNextEpisodeCallbackUrl();

    /**

    • 다음회차 Callback URL 호출 시 post 데이터 가져오는 함수

    • @return 다음회차 Callback URL 호출 시 post 데이터
      */
      public String getNextEpisodeCallbackData();

    /**

    • 다음회차가 있는 경우 UI 버튼을 보여줄 시간 가져오는 함수

    • @return 보여줄 시간
      */
      public int getNextEpisodeShowTime();

  2. KollusContent API 정리
    추가

    /**

    • Parcel로 재생 컨텐츠 정보를 설정하는 함수

    • SDK 내부에서 사용

    • @param in 컨텐츠 정볼를 담은 Parcel
      */
      public void setForPlay(Parcel in);

    /**

    • Parcel로 다운로드 컨텐츠 정보를 설정하는 함수

    • SDK 내부에서 사용

    • @param in 컨텐츠 정볼를 담은 Parcel
      */
      public void setForDownload(Parcel in);

    /**

    • Json String으로 컨텐츠 정보를 설정하는 함수

    • SDK 내부에서 사용

    • @param jsonString 컨텐츠 정볼를 담은 Json String
      */
      public void setByJson(String jsonString);

    /**

    • 주어진 인자에 컨텐츠 정보를 복사하는 함수

    • @param content 컨텐츠 정보를 복사할 대상 KollusContent
      */
      public void copy(KollusContent content);

    아래 함수 제외한 set함수 제거
    public void setMediaContentKey(String key);
    public void setContentType(ContentType type);
    public void setUriIndex(int index);
    public void setPlaytime(int playtime);
    public void setReceivedSize(long receiveSize);
    public void setReceivingSize(long receiveSize);
    public void setFileSize(long fileSize);
    public void setLocalMediaUrl(String mediaUrl);
    public void setDownloadPercent(int percent);
    public void setDownloadCompleted(boolean complete);
    public void setDownloadError(boolean bError);
    public void setLoaded(boolean bLoaded);
    public void setContentExpired (boolean expired);
    public void setDownloading(boolean downloading);
    public void setDownloadCanceled();
    public void setServiceProviderMessage(String message);

  3. 라이브의 비디오 워터마크 오류 수정

  4. 4.2이하 단말에서 배속 재생 시 죽는 현상 수정


2.0.18

  1. AwesomePlayer에서 seek중에 LMS 데이터가 나가는 경우 LMS 데이터의 playtime 오류 수정

  2. i 또는 si 링크가 아닌 경우 죽는 문제 수정

  3. 자막이 없는 구간으로 seek 시 이전 시간의 자막이 잠깐 나오고 사라지는 현상 수정

  4. AI 배속 튜닝

  5. LMS 콜백 URL이 여러개인 경우 오류 발생 시(4xx, 5xx) 그 이후의 오프라인 LMS 데이터가 올라가지 않는 현상 수정


2.0.17

  1. MediaInfo 가져오는 중에 재생 종료 시 IndexOutOfBoundsException으로 죽는 현상 수정

  2. StorageManager load 중에 재생 종료 시 ANR 발생 현상 수정

  3. LMS데이터에 ai_playtime 추가


2.0.16

Copyright © CATENOID, lnc. All Rights Reserved.
E-mail. support@catenoid.net | Tel. 1544-4367