릴리즈 노트
2.3.34
Release Date: 2026-03-17
Added Features
- 라이브 동접자 리포팅 전송
- 변경 이유: 라이브 동접자 리포팅을 플레이어에서 전송
- 영향 범위: 없음
- 앱 변경 여부: 없음
Added Features
- Kollus Live 비인가 IP 재생 차단
- 변경 이유: 'IP 제한'을 두어 재생 불가 처리
- 영향 범위: 없음
- 앱 변경 여부: 없음
2.3.33
Release Date: 2026-01-26
Added APIs
KollusPlayerView.h에 추가/// Playback Limit Duration
@property (nonatomic, unsafe_unretained, readonly) NSInteger nPlaybackLimitDuration;
/// Playback Limit Message
@property (nonatomic, copy) NSString *strPlaybackLimitMessage;- 변경 이유: 콘텐츠 재생후 일정시간 지나면 재생 차단
- 영향 범위: 없음
- 앱 변경 여부: 없음
2.3.32
Release Date: 2025-12-30
Added Features
- 콘텐츠 다운로드 이벤트 데이터 전송
- 변경 이유: QoE 데이터 수집
- 영향 범위: 없음
- 앱 변경 여부: 없음
2.3.31
Release Date: 2025-12-10
Added APIs
-
챕터 클래스(
Chapter.h) 추가/// Chapter Dictionary
@interface ChapterDict : NSObject
/// Language code for the chapter
@property (nonatomic, retain) NSString* strLanguage;
/// A list of Chapter objects
@property (nonatomic, retain) NSMutableArray* listChapter;
/// Chapter Information Object
@interface Chapter : NSObject
/// Start position of the chapter
@property (nonatomic, unsafe_unretained) NSTimeInterval position;
/// The display title or text content of the chapter
@property (nonatomic, retain) NSString *value;- 변경 이유: 챕터 정보를 넣어 영상을 쉽게 탐색
- 영향 범위: 없음
- 앱 변경 여부: 없음
-
챕터 정보 조회 속성 추가
KollusPlayerView.h에 영상의 챕터 리스트를 조회할 수 있는 속성 추가
@property (nonatomic, readonly) NSMutableDictionary* chapterInfo;- 변경 이유: 챕터 정보를 넣어 영상을 쉽게 탐색
- 영향 범위: 없음
- 앱 변경 여부: 없음
- 사용 예제
- 호출 시점: 챕터 정보는 플레이어의 재생 준비가 완료된 시점(
prepareToPlayWithError) 이후에 참조해야 정확한 데이터를 얻을 수 있습니다.func kollusPlayerView(_ kollusPlayerView: KollusPlayerView!, prepareToPlayWithError error: Error!) - 참조:
func setChapterInfo()if let chapterInfo = playerView.chapterInfo as? [String: ChapterDict] {
if chapterInfo.keys.contains("default_language_code") {
NLog("챕터 언어에 \(String(describing: "default")) 값이 존재합니다.")
chapterList = chapterInfo["default_language_code"]?.listChapter as! [Chapter]
} else {
NLog("챕터 언어에 default 값이 없습니다.")
}
NLog("chapterList : \(chapterList)")
for chapter in chapterList {
let value = (Float(chapter.position))/Float(data!.duration)
controlView.sliderView.addChapter(value: value)
}
}
- 호출 시점: 챕터 정보는 플레이어의 재생 준비가 완료된 시점(
Fixed
- 라이브 재생 시 재생 콜백으로 tv out 설정 오류 수정
- 변경 이유: 오류 수정
- 영향 범위: 없음
- 앱 변경 여부: 없음
2.3.30
Release Date: 2025-11-10
Added APIs
KollusPlayerView.h에 콘텐츠 제공자 식별 정보 추가@property (nonatomic) NSString *contentProviderKey;- 변경 이유: 사용자 행동 분석 action stats에서 데이터의 활용
- 영향 범위: 없음
- 앱 변경 여부: 없음
Added Features
- Kollus Edge에서 다운로드 시 keep-alive 적용
- 변경 이유: network connect에 소모되는 시간 및 리소스를 절약
- 영향 범위: 없음
- 앱 변경 여부: 없음
- network api 신규 필드 추가 및 timestamp 변경
- 변경 이유: 수집된 QoE 데이터 활용
- 영향 범위: 없음
- 앱 변경 여부: 없음
- action stats api에 cpk 필드 추가
- 변경 이유: 사용자 행동 분석 action stats에서 데이터의 활용성을 높임
- 영향 범위: 없음
- 앱 변경 여부: 없음
2.3.29
Release Date: 2025-10-27
Added Features
- 사용자 행동분석 데이터 전송 on/off(Kollus 플레이어만)
- 변경 이유: SDK 사용 고객 해당없음, 고객별로 사용자 행동분석 데이터 전송을 on/off 하는 시나리오가 추가
- 영향 범위: 없음
- 앱 변경 여부: 없음
- UserAgent의 device type 상세 구분
- 변경 이유: device별 hit 구분
- 영향 범위: 없음
- 앱 변경 여부: 없음
- 다운로드 요청 시 DRM Callback 응답 내 고객사에서 설정한 메시지 미노출 수정
- 변경 이유: 콘텐츠 다운로드 요청 시, DRM Callback 응답을 false로 했을 때, 설정되어 있는 message로 노출
- 영향 범위: 없음
- 앱 변경 여부: 없음
2.3.28
Release Date: 2025-08-12
Added Features
- PIP 모드 재생 시 녹화 방지
- 변경 이유: PIP 모드 재생 시 녹화 방지
- 영향 범위: 없음
- 앱 변경 여부: 없음
2.3.27
Release Date: 2025-08-06
Added Features
- Live 재생 중 알려진 블랙 스크린 발생 시 에러 코드 및 에러 리포트
- 변경 이유: 블랙 스크린 발생 파악
- 영향 범위: 없음
- 앱 변경 여부: 없음
2.3.26
Release Date: 2025-06-24
Added Features
- 네트워크 품질 모니터링
- 변경 이유: 네트워크 품질 수집
- 영향 범위: 없음
- 앱 변경 여부: 없음
2.3.25
Release Date: 2025-06-05
Added APIs
- "KollusStorage.h" 에서
- /// Kollus SDK 스토리지 폴더 설정: 하위 폴더로 kollus 생성
@property (nonatomic, copy, readonly) NSString *storagePath; - (BOOL)setKollusPath:(NSString *)path;
- 변경 이유: SDK 스토리지 지정 폴더 API추가
- 영향 범위: 없음
- 앱 변경 여부: 없음
- /// Kollus SDK 스토리지 폴더 설정: 하위 폴더로 kollus 생성
- 사용 예제
- (BOOL)startStorage:(NSError**)error; 호출 전에 사용
storage = KollusStorage()
let dateString = "2025/12/31"
storage.applicationKey = "4172322ee271bxxxxxxxxxxx…..2880b2411"
storage.applicationBundleID = "com.example.KollusPlayer"
let paths = NSSearchPathForDirectoriesInDomains(.libraryDirectory, .userDomainMask, true)
storage.setKollusPath(paths.first)
try storage.start()⚠️주의이 메서드는 신규 앱에서만 사용해야 됨. 그렇지 않으면 기존 download된 콘텐츠는 볼 수 없음
startStorage 함수를 호출 전에 사용해야 됨 default path로 Documnet 폴더를 사용
- (BOOL)startStorage:(NSError**)error; 호출 전에 사용
2.3.24
Release Date: 2025-05-15
Added APIs
- "SubTitleInfo.h" 에서
- /// AI자막 여부
@property (nonatomic) BOOL isAISubtitles; - 변경 이유: AI자막 여부를 확인할 수 있는 API 추가
- 영향 범위: 없음
- 앱 변경 여부: 없음
- /// AI자막 여부
2.3.23
Release Date: 2025-03-25
Added APIs
- "KollusPlayerView.h" 에서
- /// Content Provider Name
@property (nonatomic) NSString *contentProviderName; - 변경 이유: 고객사 이름 제공
- 영향 범위: 없음
- 앱 변경 여부: 없음
- /// 백그라운드 재생 가능 여부
@property (nonatomic, unsafe_unretained, readonly) BOOL disableBackgroundAudio; - 변경 이유: 백그라운드 상태에서 콘텐츠 재생 여부
- 영향 범위: 없음
- 앱 변경 여부: 없음
- /// Content Provider Name
2.3.22
Release Date: 2025-02-25
Added Features
- KollusSDK 에러 수집 고도화
- 변경 이유: 플레이어 초기화 이전에 발생하는 에러 수집 목적
- 영향 범위: 없음
- 앱 변경 여부: 없음
Fixed
- HW Decoder 사용 시 Background에서 일시정지 상태로 Foreground로 전환시 currentPlaybackTime 오류 수정
- 변경 이유: 오류 수정
- 영향 범위: 없음
- 앱 변경 여부: 없음
- HW Decoder 로 재생 중 재생을 종료하면서 백그라운드 진입 시 앱 충돌 현상 수정
- 변경 이유: 오류 수정
- 영향 범위: 없음
- 앱 변경 여부: 없음
2.3.21
Release Date: 2025-02-06
Added Features
- iOS Kollus Player SDK 지원 최소 OS: iOS 15.0 부터 지원
- 변경 이유: Xcode16에서는 on-device debugging이 iOS15부터 지원함
- 영향 범위: YES(iOS15 미만 단말에서는 지원하지 않음)
- 앱 변경 여부: YES(Xcode 설정에서 Minmum Deployments를 최소 15.0으로 변경해야 함)
Fixed
- iOS HLS 스트리밍 재생시 m3u8 header 부분에 Last-modified 확인하는 부분 제거
- 변경 이유: On the fly 방식으로 HLS를 스트리밍하는 경우 header 부분에 Last-modified 정보가 포함되지 않아 재생 불가 상태임
- 영향 범위: 없음
- 앱 변경 여부: 없음
2.3.20
Release Date: 2025-01-14
Added APIs
- "KollusPlayerView.h" 에서
- /// 다음 회차 재생 Show Button
@property (nonatomic, unsafe_unretained, readonly) BOOL nextEpisodeShowButton; - 변경 이유: 다음 회차 자동 재생 설정이 On인 경우라도 media_info option에 따라 [다음회] 버튼을 show/hide 처리
- 영향 범위: 없음(해당 flag 값을 필요로 하는 고객사에만 적용 필요)
- 앱 변경 여부: 없음(해당 flag 값을 필요로 하는 고객사에만 적용 필요)
- /// 다음 회차 재생 Show Button
Deleted APIs
- "KollusPlayerView.h" 에서
- /// Audio water mark 여부
@property (nonatomic, unsafe_unretained, readonly) BOOL isWaterMark; - 변경 이유: AWT(Audio watermark) EOL 선언 & 현재 사용고객이 없는 상태임.
- 영향 범위: 없음
- 앱 변경 여부: 없음
- /// Audio water mark 여부
Added Features
- debug SDK 사용시 UI 구분
- Debug용 SDK를 사용하여 App을 build 한 경우 사용자가 인지할 수 있도록 UI를 추가. (Debug 문자를 영상 상단에 표시)
- 변경 이유: Debug용 SDK를 배포 App에 적용되는 것을 방지
- 영향 범위: 없음
- 앱 변경 여부: 없음
- 콘텐츠별 미디어인포 복호화 키 적용
- 콘텐츠별 미디어인포 암호화키를 적용
- 변경 이유: 보안 강화
- 영향 범위: 없음
- 앱 변경 여부: 없음
2.3.19
Release Date: 2024-12-17
Changed APIs
- "KollusPlayerLMSDelegate.h" 에서
- @param json 리퀘스트로 보낸 JSON 객체
@param error 네트워크 에러(nil: 성공) - (void)kollusPlayerView:(KollusPlayerView *)kollusPlayerView json:(NSDictionary *)json error:(NSError *)error;
- =>
- @param lmsData lms data 정보
@param resultJson lms result 정보 - (void)kollusPlayerView:(KollusPlayerView *)kollusPlayerView lmsData:(NSString *)lmsData resultJson:(NSDictionary *)resultJson;
- 변경 이유: LMS data 정보에 전송받는 URL 추가 요청으로 API 변경
- 영향 범위: Yes(빌드 오류가 발생하기 때문에 App에서 변경된 API로 적용해야 함)
- 앱 변경 여부: Yes(빌드 오류가 발생하기 때문에 App에서 변경된 API로 적용해야 함)
- @param json 리퀘스트로 보낸 JSON 객체
Added Features
- 배속 설정 시 자동 재생 방지
- 일시정지 상태에서 배속이벤트 > SDK에서 설정값을 보관후 Play이벤트 시점에 배속 값 적용
- 변경 이유: 일시정지 상태에서 배속 설정하면 재생되는 현상 방지할 목적
- 영향 범위: 없음
- 앱 변경 여부: 없음
- seeking 중에 Pause 이벤트 올 시 skip 처리
- 콘텐츠 재생 중에 seek 시 seek가 완료되기전에 pause 이벤트 올시 pause 결과가 일관성이 없음
- 변경 이유: seek 중에 pause 이벤트 > seek 동작에 영향을 줄 수 있으므로 무시하도록 함
- 영향 범위: 없음
- 앱 변경 여부: 없음
2.3.18
Release Date: 2024-11-07
Added APIs
- "KollusPlayerView.h" 에서 ignoreZero 추가
- /// 이어보기 시간 값이 작을 때에도 이어보기 유효
@property (nonatomic, unsafe_unretained, readonly) BOOL ignoreZero; - 재생URL의 Query parameter로 전달된 ign_z flag의 값을 반환합니다. (default: false)
- 변경 이유: 이어보기 정보가 앞뒤로 일정시간 미만이면(Kollus 플레이어는 10초 미만) 처음부터 재생하는 시나리오를 무시하고 이어보기를 원하는 고객사의 요구로 추가
- 영향 범위: 없음(해당 flag 값을 필요로 하는 고객사에만 적용 필요)
- 앱 변경 여부: 없음(해당 flag 값을 필요로 하는 고객사에만 적용 필요)
- /// 이어보기 시간 값이 작을 때에도 이어보기 유효
Added Features
- 이어보기 시간 값이 작을 때에도 이어보기 유효 flag
- 재생 URL의 Query parameter로 전달된 ign_z flag의 값을 반환합니다. (default: false)
- 변경 이유: 이어보기 정보가 앞뒤로 일정시간 미만이면(Kollus 플레이어는 10초 미만) 처음부터 재생하는 시나리오를 무시하고 이어보기를 원하는 고객사의 요구로 추가
- 영향 범위: 없음(해당 flag 값을 필요로 하는 고객사에만 적용 필요)
- 앱 변경 여부: 없음(해당 flag 값을 필요로 하는 고객사에만 적용 필요)
- Kollus DRM 및 콘텐츠 보안 강화
- 변경 이유: Kollus 보안 강화
- 영향 범위: Kollus 사용 고객 (V/G 암호화 버전 업그레이 드 및 DRM 암/복호화 모듈 업데이트)
- 앱 변경 여부: 없음
2.3.17
Release Date: 2024-09-11
Added Features
- LMS Callback 전달 항목 추가 개발(백그라운드, 포그라운드 시 타임스탬프 값)
- 변경 이후: 백그라운드에 사용자가 머물러 있는 시간을 계산하기 위한 기능 추가
- 영향 범위: 신규 API이므로 영향 없음
- 앱 변경 여부: 필요 없음
2.3.16
Release Date: 2024-08-29
Added Features
- on the fly DRM 적용: 콘텐츠별 콜러스 DRM 적용
2.3.15
Release Date: 2024-08-13
- PallyConFPSSDK.framework 2.3.0 적용: 앱에서 교체해야 함
- SRT 자막 개행 문자 누락에 대한 예외처리
- StorageManager nil 이면 ERROR_KOLLUS_STORAGE_IS_EMPTY 에러 처리
2.3.14
Release Date: 2024-06-25
- PallyConFPSSDK.framework 2.1.0 적용: 앱에서 교체해야 함
2.3.13
Release Date: 2024-06-19
- [KollusAVPlayerView checkOutPut] Crash 현상 예외처리 보완
2.3.12
Release Date: 2024-05-09
- AI배속 아이폰 재생시 끊기는 현상 개선
2.3.11
Release Date: 2024-04-15
- AI배속 콘텐츠는 ios_player_type에 따라 재생
- AI배속 콘텐츠 정보 N-screen 에 추가
- privacy manifest 파일 추가
///플레이어 타입: hw, sw, native
@property (nonatomic, copy, readonly) NSString *iosPlayerType;
2.3.10
Release Date: 2024-03-28
- [KollusProxyPlayerView checkOutPut] Crash 현상 예외처리
- H/W Decoder 재생 시 Background Sound 재생 지원
- 다음 회차 재생 시나리오 적용
- 다음 회차 API 추가
/// 다음 회차 재생 Show Time
@property (nonatomic, unsafe_unretained, readonly) NSInteger nextEpisodeShowTime;
/// 다음 회차 재생 URL
@property (nonatomic, copy, readonly) NSString *nextEpisodeCallbackURL;
/// 다음 회차 재생 Params
@property (nonatomic, readonly) NSMutableDictionary *nextEpisodeCallbackParams;
2.3.9
Release Date: 2024-03-04
- LMS 콜백내 AI배속 재생 시간 추가: at_playtime
- iOS 지원: iOS12 이상
- 연속 여러 번 seek 시 이전 타이밍의 자막이 잠시 노출되는 현상 수정
2.3.8
Release Date: 2024-02-05
- 플레이어 ID 변경되는 것을 방지하기 위해 backup 저장
- Native 플레이어 에서도 AI배속 정보 전달
2.3.7
Release Date: 2024-01-12
- iOS Player sw 디코더 설정일 때 h265 영상 Seek 시 재생 화면이 비정상 출력되는 현상 수정
- AI배속 기능
- 구간 재생 파라미터 추가
AI배속 관련 API 추가
KollusPlayerView.h에서/// AI배속 지원 여부
@property(nonatomic, unsafe_unretained) BOOL AIRateEnable;
/// AI배속 사용 설정(YES: AI배속, NO: 일반 배속)
@param YES(default);
(void) setAIRate:(bool)bAIRate;
/// Repeat Start Time
@property (nonatomic, unsafe_unretained, readonly) NSInteger nRepeatStartTime;
/// Repeat End Time
@property (nonatomic, unsafe_unretained, readonly) NSInteger nRepeatEndTime;