Release Notes
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 수정
2.0.23
AI 배속 스크립트 패스 오류에 대한 방어 코드 추가
2.0.22
네트워크가 좋지 않을때 재생 시도 중 ExoPlayer에서 오류 발생 시 ANR 발생되는 현상 수정
-1007 에러 발생하는 상황의 에러코드 분리
-1018 : KollusStorage 인자 오류 또는 재생 패스 오류 시
-1019 : KollusStorage 초기화 안된 경우SocketTimeoutException발생 시 -1010에서 -8028로 변경
2.0.21
구글 미인증 단말에 Pallycon 라이브러리 초기화 죽는 문제 수정
단말명으로 초기화 skip
2.0.20
AI 배속 콘텐츠 정보 N-screen에 추가
Kollus UserAgent에 크롬OS 추가
2.0.19
다음회차 추가
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();
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);라이브의 비디오 워터마크 오류 수정
4.2이하 단말에서 배속 재생 시 죽는 현상 수정
2.0.18
AwesomePlayer에서 seek중에 LMS 데이터가 나가는 경우 LMS 데이터의 playtime 오류 수정
i 또는 si 링크가 아닌 경우 죽는 문제 수정
자막이 없는 구간으로 seek 시 이전 시간의 자막이 잠깐 나오고 사라지는 현상 수정
AI 배속 튜닝
LMS 콜백 URL이 여러개인 경우 오류 발생 시(4xx, 5xx) 그 이후의 오프라인 LMS 데이터가 올라가지 않는 현상 수정
2.0.17
MediaInfo 가져오는 중에 재생 종료 시 IndexOutOfBoundsException으로 죽는 현상 수정
StorageManager load 중에 재생 종료 시 ANR 발생 현상 수정
LMS데이터에 ai_playtime 추가
2.0.16
AI 배속 추가
MediaPlayer에 아래 API 추가
/**AI 배속 여부 설정하는 함수
@param enable true : AI 배속, false : 일반 배속
*/
public void setAiPlaybackRateEnable(boolean enable);
/**
AI 배속 여부를 알려주는 함수
@return true : AI 배속, false : 일반 배속
*/
public boolean isAiPlaybackRateEnabled();
KollusContent에 아래 API 추가
/**AI SCript 주소를 설정하는 함수로 SDK내에서 사용합니다.
@param scriptPath AI SCript 주소
*/
public void setAiScriptPath(String scriptPath);
/**
AI SCript 주소를 가져오는 함수로 경로가 빈문자가 아니면 AI 배속이 가능한 컨텐츠입니다.
*/
public String getAiScriptPath();
멀티 DRM 컨텐츠의 썸네일, 스냅샷 이미지 패스 오류 수정
2.0.11부터 발생구간 재생 파라미터 추가
KollusContent에 아래 API 추가
/**반복 재생 시작 시간을 설정하는 함수
@param time 반복 재생 시작 시간 (밀리초)
*/
public void setRepeatPlaySectionStart(int time);
/**
반복 재생 시작 시간을 가져오는 함수
@return 반복 재생 시작 시간 (밀리초)
*/
public int getRepeatPlaySectionStart();
/**
반복 재생 종료 시간을 설정하는 함수
@param time 반복 재생 종료 시간 (밀리초)
*/
public void setRepeatPlaySectionEnd(int time);
/**
반복 재생 종료 시간을 가져오는 함수
@return 반복 재생 종료 시간 (밀리초)
*/
public int getRepeatPlaySectionEnd();
2.0.15
간헐적으로 미디어 파싱 오류(-8633) 발생 원인 제거
에러 리포트시 인코딩 프로파일 키도 올림
prepared전에 종료시 LMS의 runtime 비정상적으로 크게 올라가는 현상 수정
북마크 타이틀에 urlencode 추가
2.0.14
엣지 접속 시 Http Request Header 추가
컨텐츠 파싱 오류 시 에러코드 -1007에서 -1010으로 변경
2.0.13
HLS, Mpeg-Dash의 경우 에러 로그 수집이 안되는 오류 수정
에러 로그 수집시 st 파라메터 누락 현상 수정
uid에 #가 포함된 경우 play callback, drm callback 오류 시 발생
mck, uid는 url encoding해서 보내는 것으로 수정컨텐츠 암호화키 시나리오 적용
2.0.12
초기버퍼링 수집 데이터 추가
onPrepared이후 첫 재생 시도 시 자막이 올라가도록 수정
2.0.11
Virtual Master 감지 패치된 라이브러리 적용
라이브 재생 시도 시 에러 발생할 경우 에러 리포트 빠지는 현상 수정
처음 엣지 접속 시 UserAgent에 cpk 빠지는 현상 수정
포렌식 워터 시작 에러 시 onPrepared가 Notify되어 재생되는 현상 수정
onPrepared이후 첫 재생 시도 시 자막이 올라가도록 수정(SDK에 포함 안되었음)
EmulatorCheckerListener에 아래 API 추가
/**재생 중에 디버깅 모드가 켜져 있는 경우 호출됩니다.
*/
public void onDetectDebuggingMode();
2.0.10
FD_SETSIZE 1024 제한으로 소켓이 1024보다 큰 경우 FD_SET에서 Crash되어 select에서 poll로 변경
스토리지 매니저에서 오류 발생 시 st파라메터 누락되는 현상 수정
테르텐 모듈 업데이트
테르텐 모듈 초기화 실패시 에러 리포트 누락 현상 수정
에뮬레이터 감지 시 에러 리포트 추가
TimeShift 최대로 seek시 간헐적으로 -3012 오류나는 현상 수정
2.0.9
재생 종료 시 ANR 현상 수정
테르텐 에뮬레이터 체크 모듈 추가
AnroidManifest.xml에 아래 항목 추가
<receiver
android:name="com.kollus.sdk.media.MediaPlayer$TMCMReceiver"
tools:ignore="Instantiatable"
android:exported="false">
<intent-filter>
<action android:name="com.teruten.mcm.receiver" />
</intent-filter>
</receiver>
2.0.8
다중 자막 지원
KolluesContent API 추가
public Vector<SubtitleInfo> getSubtitleSubInfo();
MediaPlayer API 변경
변경 전
public void addTimedTextSource(Context context, Uri uri);
public void addTimedTextSource(String path);
public void selectTrack(int index);
public void deselectTrack(int index);
변경 후
public void addTimedTextSource(Context context, boolean bSubTimedText, Uri uri);
public void addTimedTextSource(boolean bSubTimedText, String path);
public void selectTrack(boolean bSubTimedText, int index);
public void deselectTrack(boolean bSubTimedText, int index);
MediaPlayer.OnTimedTextDetectListener API 추가
public void onSubTimedTextDetect(MediaPlayer mp, int trackIndex);
MediaPlayer.OnTimedTextListener API 추가
public void onSubTimedText(MediaPlayer mp, String text);아래 API 파라메터 변경
변경 전
MediaPlayer.OnExternalDisplayDetectListener의
public void onExternalDisplayDetect(int type, boolean plugged);
KollusContent의
public int getContentType();
변경 후
MediaPlayer.OnExternalDisplayDetectListener의
public void onExternalDisplayDetect(EXTERNAL_DISPLAY_MODE type, boolean plugged);
KollusContent의
public KollusContent.ContentType getContentType();
2.0.7
다운로드 링크에 download파라메터를 SDK내에 추가
앱에 있던 것을 SDK단으로 옮김(고객사에서 누락해서 네트워크 throttling에 걸려 느린 현상 방지)앱취약성 경고 및 에뮬레이터 감지 안되는 문제로 테르텐 에뮬레이터 체크 라이브러리 제거
안드로이드 11이상에서는 권한 문제로 아예 체크 불가능아래 CPU 아키텍쳐 제거
armeabi, mips, mips64
2.0.6
TimeShift시 current position과 duration 오류 수정
진도률에 볼륨, 배속관련 스펙 추가
prepareAsync 두번 호출로 인해 버퍼링 시간이 음수로 리포트되는 현상 수정
release모드에서 프로가드 적용 시 죽는 현상 수정
lms에 치환자 {PLAY_BLOCK_JSON} 사용 시 데이터 오류 수정
2.0.5
ExoPlayer seek시 complete notify 시점 변경
setBandwidth로 화질을 하향 조정 시 바로 적용 안되는 현상 수정
Forensic Video Watermark 관련 API 추가
/**ForensicWatermarkView를 설정하는 함수로 SurfaceView나 Surface를 포함한 상태에서 호출하면 됩니다.
포렌식 비디오 워터마크를 지원하는 경우 필수로 설정해야 합니다.
@param view
*/
public void setForensicWatermarkView(ForensicWatermarkView view);
/**
포렌식 워터마크를 표시하는 View로 최상위 ViewGroup에 addView해야 합니다.
@param context
@param storage
@param key 발급된 키
@param expireDate 발급된 키의 만료 기한
@param isDownload 다운로드 컨텐츠 여부
*/
public ForensicWatermarkView(Context context, KollusStorage storage, String key, String expireDate, boolean isDownload);
2.0.4
MediaPlayer에 아래 API 추가
/**시작하는 Bandwidth를 설정하는 함수로 0이면 bandwidth 리스트의 첫 항목부터 시작하고
0보다 큰 값을 설정하면 설정된 값을 넘지 않는 최고의 bandwidth로 시작합니다.
prepareAsync전에 호출하시면 됩니다.
@param bandwidth
*/
public void setInitialBandwidth(int bandwidth);
/**
상위 bandwidth로 올릴 때 남아 있는 버퍼 용량이 설정값이상인 경우만 적용되도록 설정하는 함수로
기본 값은 10초입니다.
prepareAsync전에 호출하시면 됩니다.
@param msec
*/
public void setMinDurationForQualityIncreaseMs(int msec);
MediaPlayer에 아래 API 제거
public void setBufferDurationsMs(int minBufferMs, int maxBufferMs);
사유 : 설정된 사이즈만큼 버퍼링하여 오히려 ABR에 방해됨멀티 DRM 컨텐츠 스트리밍 재생 종료 후 캐시 폴더 삭제
2.0.3
로그 서버와 통신 시 http 고정된 것 미디어 정보에서 가져오도록 수정
Multi DRM의 썸네일 다운로드를 Kollus DRM처럼 async하게 동작할 수 있도록 수정
: 토큰 생성 시 썸네일 다운로드를 thread방식으로 설정을 하면 초기 재생이 빨라짐
2.0.2
재생 시작 후 종료 시 Crash방지
DASH, HLS의 경우 UserAgent가 잘못 올라가는 경우 수정
MediaPlayer에 아래 API 추가
/**버퍼링되는 시간을 설정하는 함수로 prepareAsync전에 호출해야 하며 DASH, HLS에서만 동작 합니다.
@param minBufferMs
@param maxBufferMs
*/
public void setBufferDurationsMs(int minBufferMs, int maxBufferMs);
2.0.1
load중에 재생 종료 시 ANR 방지(for ExoPlayer)
인트로 영상이거나 seekable이 false인 경우 북마크를 가져오지 않도록 수정(for ExoPlayer)
재생 중 오류 시 에러 리포트 누락 현상 수정(for ExoPlayer)
ABR 화질 선택 시 화질을 고정하지 않고 iOS처럼 해당 화질까지 ABR되도록 변경(for ExoPlayer)
ABR 의 첫 항목이 처음 재생되도록 수정(for ExoPlayer)
화질 선택 API? 아래와 같이 변경
변경전
public void setBandwidth(String bandWidthName);변경후
public void setBandwidth(int bandWidth);
public void setBandwidthName(String bandWidthName);
Utils클래스에 아래의 API 변경
isTablet 접근자 private으로 변경
public static @DEVICE_TYPE int getDeviceType(Context context) 추가
2.0.0
포렌식 워터마크 추가
KollusContent 아래의 API 변경
public void setHasWaterMark(boolean hasWaterMark) --> public void setAudioWaterMark(String waterMark)
public boolean getHasWaterMark() --> public boolean hasAudioWaterMark()
KollusContent 아래의 API 추가
public String getAudioWaterMark()
public void setForensicWaterMark(String waterMark)
public String getForensicWaterMark()
public boolean hasForensicWaterMark()
라이브(HLS, Mpeg-Dash)경우 에러 시 재시도와 종료와 충돌 방지
저장 경로 가져올 때 NullPointerException 방지
종료 시 락걸림 현상 방지(약전계에서 발생하는 듯 함)
ExoPlayer 버전 업(2.10.3 -> 2.13.2)
MultiDRM 라이브러리 개발 환경이 2.13.2임
build.gradle에 아래 사항 추가
defaultConfig {
...
multiDexEnabled true
}dependencies {
...
implementation 'androidx.multidex:multidex:2.0.1'
implementation 'com.google.guava:guava:27.1-android'
}멀티 DRM 2.1.3 라이브러리 적용
AndroidManifest에 org.apache.http.legacy 사용 제거
2021.06.14
컨텐츠 Duration이 LMS의 블럭수보다 큰 경우 방어코드 추가
MP4 박스 오류에 대한 방어 코드 추가(ExoPlayer)
MP4 박스의 코덱 정보와 실제 코덱이 다른 경우 방어코드 추가(AwesomePlayer)
멀티 다운로드 중에 같은 목록으로 재요청 시 download complete가 올라가는 현상 수정
KollusContent에 아래와 같은 오디오파일 확인 관련 API 추가
/**SDK 내부에서 사용
@param bAudioFile AudioFile
*/
public void setAudioFile(boolean bAudioFile);
/**
오디오 컨텐츠인 지 여부를 알 수 있는 함수
@return 오디오 파일 여부
*/
public boolean isAudioFile() ;
테르텐 에뮬레이터 체크 라이브러리 적용
KollusContent에 API 추가
/**SDK 내부에서 사용
@param block
*/
public void setBlockEmulator(boolean block);EmulatorCheckerListener에 아래 API 추가
public void onDetectRooting();AndroidManifest.xml에 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 퍼미션 추가
재생 시작하자마자 종료 시 죽는 현상 수정
prepare 중에 ExoPlayer가 생성이 안되어서 destroyDisplay시 NullPointerException 발생
약전계에서 -8403 에러 수정
ExoPlayer의 timeout(8초)으로 인해 재시도를 하면 proxy 입장에서는이미 client가 있는 것으로 판단되어 발생
500ms sleep 후 connection이 없으면 정상 처리
2021.02.05
재생 시작하자마자 종료 시 죽는 현상 수정
종료 시 주소값을 null처리하는데 prepare 중에 주소값이 null이어서 발생. Locker추가
NDK Codec에서 발생하는 Crash의 의심되는 부분 수정
ExoPlayer에서 TrackInfo 가져올 수 있도록 수정
Proxy Server 보안 강화
외장메모리에 다운로드 받는 중에 탈거하는 경우 -8623으로 올라가는 현상 수정
채팅관련 사항 추가
KollusContent 아래 사항 추가
/**SDK 내부에서 사용
@param info 채팅 관련 정보
*/
public void setChattingInfo(ChattingInfo info);
/**
채팅 설정에 필요한 정보를 가져오는 함수
@return 채팅 정보
*/
public ChattingInfo getChattingInfo();
public class ChattingInfo {
public String mainUrl;
public String kind;
public String position;
public boolean isVisible;
public boolean isAdmin;
public boolean bDisableDefaulProfilePhoto;
public String roomId;
public String chatServer;
public String helloMessage;
public String userName;
public String userId;
public String photoUrl;
}
2020.12.09
인트로 영상에서 빠른 정확한 탐색 시 죽는 현상 수정
2020.11.30
User Agent 규칙 변경(pc, mobile, tablet 구분)
KollusContent에 최대 배속 관련 API 추가
/**SDK 내부에서 사용
@param rate
*/
public void setMaxPlaybackRate(int rate);
2020.11.12
KollusStorage에 아래 API 추가
public void sendStoredLMS(StoredLMSListener listener);
KollusStorage의 리스너관련 API 변경 및 추가
OnKollusStorageListener 관련사항
setOnKollusStorageListener -> registerKollusStorageListener 으로 변경
unregisterKollusStorageListener 추가
KollusPlayerDRMListener 관련사항
setKollusPlayerDRMListener -> registerKollusPlayerDRMListener 으로 변경
unregisterKollusPlayerDRMListener 추가
KollusPlayerLMSListener 관련 사항
setKollusPlayerLMSListener -> registerKollusPlayerLMSListener 으로 변경
unregisterKollusPlayerLMSListener 추가
KollusPlayerThumbnailListener 관련사항
setKollusPlayerThumbnailListener -> registerKollusPlayerThumbnailListener 으로 변경
unregisterKollusPlayerThumbnailListener 추가
KollusPlayerCallbackListener 관련사항
setKollusPlayerCallbackListener -> registerKollusPlayerCallbackListener 으로 변경
unregisterKollusPlayerCallbackListener 추가
/**
저장된 LMS 데이터를 플레이어가 아닌 별도의 API를 통해서 받을 때
결과를 응답받는 리스너
/
public interface StoredLMSListener {
/*저장된 LMS 데이터를 모두 보낸 후 응답하는 함수
@param successCount 전송 성공 개수
@param failCount 전송 실패 개수
*/
void onSendComplete(int successCount, int failCount);
}
라이브 재생 시 중복 차단을 위한 정보가 빠져 있는 현상 수정
2020.11.02
Current Position 오류 수정
롤리팝미만인 경우 Pallycon Agent 생성 안함
2020.10.19
재생 초기 버퍼링 시간 리포팅을 잘못된 URL로 보내는 현상 수정
재생 초기 버퍼링 시간 리포팅을 ASync하게 변경
다운로드를 위해 컨텐츠가 로드되었는지 확인하는 API 추가
KollusContent에 아래 API 추가
public void setLoaded(boolean bLoaded);//내부적으로만 사용
public boolean isLoaded();
prepare 완료되기 전에 재생 종료 시 죽는 현상 수정(마켓의 일부 NullPointException 연관)
prepare직후 종료 시 uri가 null이어서 죽음
prepare후 onPrepared 호출 시점에 종료 시 컨텐츠 정보가 null이어서 죽음
라이브 플레이 콜백 result가 0인 경우 에러 메세지가 없으면 잘못된 에러코드가 올라가는 현상 수정
내부에서 관리하는 다운로드 리스트에는 없는 미디어키로 dowload api 호출 시 죽는 현상 수정
다운로드를 위해 load후 삭제한 다음 dowload api 호출하는 것으로 판단됨
북마크 타이틀 누락 현상 수정(for ExoPlayer)
2020.08.10
2020.06.08_r1 Base
네트워크 단절 시에도 타임아웃 적용되도록 수정
인트로에서 오디오 워터마크 영상 재생 후 다음 워터마크가 없는 영상 재생 시 죽는 현상 수정
ExoPlayer 구간 반복시 버퍼링 표시되는 현상 수정
구간 반복시 잠깐동안 버퍼링단계에 빠질 수 있습니다.
그래서 구간 반복 시에는 버퍼링 표시를 하지 않도록 수정하는 것을 추천합니다.
disable_nscreen 이 true인 다운로드 컨텐츠에서 nscreen 정보가 나가는 현상 수정
오프라인 북마크 타이틀 누락 현상 수정
Multi DRM 다운로드 기능 추가
KollusContent에 public @ContentType int getContentType(); 추가
KOLLUS_CONTENT, EXT_DRM_CONTENT
파일 사이즈 정보가 다운로드 중에는 부정확할 수 있습니다.
User Agent 규칙 변경
라이브 LMS 데이터 오류 수정
라이브에 비디오 워터마크 안나오는 현상 수정
2020.08.03
오프라인 북마크 타이틀 누락 현상 수정
오프라인 북마크 추가를 빨리하면 죽는 현상 수정
2020.07.21
2020.03.20_r1으로 롤백
가상머신 체크 오류 에러가 보고되지 않는 시점(2019.04.09_r1)으로 적용
OnInfoListener에 아래 함수 추가
void onCodecInitFail(String componentName);
disable_nscreen 이 true인 다운로드 컨텐츠에서 nscreen 정보가 나가는 현상 수정
2020.06.08
OnInfoListener에 아래 함수 추가
void onCodecInitFail(String componentName);
No Kollus VOD 자막 지원
No Kollus VOD 플레이 콜백 지원
No Kollus VOD 네트워크 타임 적용
가상 머신 체크로 변경
Utils의 함수 변경
public static String createUUIDSHA1(Context context)에서 public static String getPlayerId(Context context)로 변경
public static String createUUIDMD5(Context context)에서 public static String getPlayerIdMd5(Context context)로 변경
public static String getPlayerId(Context context)에서 public static String getPlayerIdSha1(Context context)로 변경
HLS 종료 시 죽는 현상 수정
2020.04.22
ExoPlayer 적용
JellyBean MR2(18)이상 AudioWatermark가 없는 경우 기본 플레이어를 ExoPlayer로 변경
app의 build.gradle에 추가
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}AndroidManifest.xml의 application태그
android:usesCleartextTraffic="true" 추가
<uses-library android:name="org.apache.http.legacy" android:required="false" />
port number 설정 필요
OnInfoListener에 아래 함수 추가
void onDetectBandwidthList(MediaPlayer mp, List<BandwidthItem> list);
void onChangedBandwidth(MediaPlayer mp, BandwidthItem item);
MediaPlayer에 아래 함수 추가
public void setBandwidth(String bandwidthName);
인트로가 있는 영상에서 본영상이 PlayCallback으로 오류 발생 시 행걸림현상 수정
MediaPlayer의 setCencProxyPath 함수 제거(MediaInfo 사용)
2020.03.20
오디오 워터 마크가 컨텐츠의 경우 전체 반복 시 화면 갱신 안되는 현상 수정
2020.02.18
Seek시 다음 구간의 자막까지 안나오는 현상 수정
onPrepared 이후 자막 올리도록 수정
2020.01.18
ToolChain 및 빌드 스크립트 변경
CpuInfo에 isSupportDevice함수 추가
외부에서 플레이어 ID 설정하는 경우 중복차단 안되는 현상 수정
OMXCodec에서 연속된 Seek시 죽는 현상 수정
Seek시 다음 구간의 자막까지 안나오는 현상 수정
onPrepared 이후 자막 올리도록 수정
2019.12.10
LMS 데이터에 치환자 TIMEMAP_DATA 추가
에뮬레이터 체크 로직 변경
2019.11.13
SW 코덱시 간헐적으로 죽는 현상 수정
DRM Callback/Play Callback 동적 인자 추가로 아래 항목 수정
. KollusStorage
기존 : public int load(String path, KollusContent content);
수정 : public int load(String path, String extraDrmParam, KollusContent content);
. MediaPlayer
기존
public void setDataSourceByUrl(String path);
public void setDataSourceByKey(String mediaContentKey);
수정
public void setDataSourceByUrl(String path, String extraDrmParam);
public void setDataSourceByKey(String mediaContentKey, String extraDrmParam);북마크 추가 시 라벨도 입력 받을 수 있도록 수정
MediaPlayer
기존 : public void updateKollusBookmark(int position);
수정 : public void updateKollusBookmark(int position, String label);Mpeg Dash ABR 추가
2019.10.08_r1
라이브(HLS, ABR) 추가
라이브 LMS 추가
Android 10에서 죽는 문제 수정
SW Codec 싱크 틀어지는 현상 수정
2019.08.22_r1의 버그
2019.08.22_r1
uservalue 10개 제한 제거
재생 종료 후 곧바로 재생시 간헐적으로 -8661오류나는 현상 수정
disable nscreen 스펙 추가
true이면 재생 종료시 nscreen 데이터를 전송하지 않음x86 64비트 라이브러리 추가
배속 재생 시 자막 싱크 틀어지는 현상 수정
interface OnInfoListener의 콜백 함수 변경
void onBandwidth(MediaPlayer mp, int bandwidth);에서 void onBandwidth(MediaPlayer mp, BandwidthItem item);로 변경
void onDetectBandwidth(MediaPlayer mp, List<BandwidthItem> list); 추가재생 중에 외부 앱에서 스카마로 재생 호출 시 행걸리는 현상 수정
2019.05.23_r1
Emulator 체크를 자동으로 할 수 있도록 수정
MediaPlayer에 API 추가
public void setEmulatorCheckerListener(EmulatorCheckerListener listener);
public interface EmulatorCheckerListener {
public void onRunningEmulator();
}DRM Callback, PlayCallback에 단말시간도 같이 올림
ClientUserID가 이메일 형식이면 북마크를 못가져오는 현상 수정
2019.04.09_r1
중복 재생 차단 체크 시 시간정보도 보도록 수정
2019.03.21_r1
갤럭시 와이드3(SM-J737)에서 재생 시도 시 죽는 현상 수정
일부 긴 MP3 컨텐츠의 Seek가 오래 걸리는 현상 수정
DRM Callback의 kind3에 expiration_date 항목 추가
소프트웨어 코덱일 경우 고배속 재생 중에 죽는 현상 수정
일부 단말(SM-T280)에서 소리 크게 재생되는 현상 수정
2019.02.15_r1부터 발생
2019-02-22
인트로 재생중에 다음 영상으로 넘어갈 때 죽는 문제 수정
2019-02-15
Stop중 Play시 행걸림 현상 수정
백그라운드 재생 중 Seek 안되는 현상 수정
2019-01-08
화면 끊김 현상 수정
블루투스 연결 시 100% 재현EmulatorDetector 패키지 변경
com.kollus.sdk.media.util --> com.kollus.sdk.media.util.emulatordetectorEmulatorDetectorViaSensor 추가 (테스트 안됨)
AccelerometerDetector accelerometerDetector = AccelerometerDetector.builder()
.setDelay(500)
.setEventCount(5)
//check continues 500*5 = 2500ms
.build();GyroscopeDetector gyroscopeDetector = GyroscopeDetector.builder()
.setDelay(500)
.setEventCount(5)
.build();
EmulatorDetectorViaSensor emulatorDetector = new EmulatorDetectorViaSensor(accelerometerDetector, gyroscopeDetector);
emulatorDetector.detect(mContext, new Callback() {
@Override
public void onDetect(boolean isEmulator) {
if(isEmulator) {
//TODO
//비디오 Pause
//경고창
}
}});
비디오 워터 마크 정보 KollusContent에 추가
/**SDK 내부에서 사용
@param code 비디오 워터마크 코드 설정
*/
public void setVideoWaterMarkCode(String code);
/**
비디오 워터마크 코드 가져오는 함수
*/
public String getVideoWaterMarkCode();
/**
SDK 내부에서 사용
@param alpha 비디오 워터마크 투명도 설정
*/
public void setVideoWaterMarkAlpha(int alpha);
/**
비디오 워터마크 투명도 가져오는 함수
*/
public int getVideoWaterMarkAlpha();
/**
SDK 내부에서 사용
@param size 비디오 워터마크 크기 설정
*/
public void setVideoWaterMarkFontSize(int size);
/**
비디오 워터마크 크기 가져오는 함수
*/
public int getVideoWaterMarkFontSize();
/**
SDK 내부에서 사용
@param color 비디오 워터마크 색상 설정
*/
public void setVideoWaterMarkFontColor(int color);
/**
비디오 워터마크 색상 가져오는 함수
*/
public int getVideoWaterMarkFontColor();
/**
SDK 내부에서 사용
@param sec 비디오 워터마크 보여주는 시간(sec) 설정
*/
public void setVideoWaterMarkShowTime(int sec);
/**
비디오 워터마크 보여주는 시간(sec) 가져오는 함수
*/
public int getVideoWaterMarkShowTime();
/**
SDK 내부에서 사용
@param sec 비디오 워터마크 숨기는 시간(sec) 설정
*/
public void setVideoWaterMarkHideTime(int sec);
/**
비디오 워터마크 숨기는 시간(sec) 가져오는 함수
*/
public int getVideoWaterMarkHideTime();
/**
SDK 내부에서 사용
@param space 비디오 워터마크 공간 분할 수 설정
*/
public void setVideoWaterMarkSpace(int space);
/**
비디오 워터마크 공간 분할 수 가져오는 함수
*/
public int getVideoWaterMarkSpace();
/**
SDK 내부에서 사용
@param random 비디오 워터마크 렌덤 표시 설정
*/
public void setVideoWaterMarkRandom(boolean random);
/**
비디오 워터마크 표시가 렌덤인지 여부
*/
public boolean isVideoWaterMarkRandom();
kind3에서 expire date를 조정하여 만료된 경우 처음 에러값이 예전것이 올라가는 오류 수정
버전 정보
AAR : 2019.01.08_r1
2018-12-11
Seek중 종료 시 LMS 데이터 튀는 현상 수정
DB의 LMS 데이터가 삭제 안되는 현상 수정
자막 끝에 개행이 들어가는 현상 수정
구간 재생 시 전체 반복 안되는 현상 수정
버전 정보
AAR : 2018.12.05_r1
2018-11-22
HLS 타임머신 지원
버전 정보
AAR : 2018.11.22_r1
2018-08-24
전체 반복시 소리 안나오는 현상 수정.
사운드코덱의 상태가 EOS가 된 상태에서 Seek시 상태를 리셋 안해서 발생버전 정보
AAR : 2018.08.24_r1
2018-08-16
오디오 파일의 경우 이어보기 안되는 현상 수정
ABR(HLS, DASH)를 위해 사운드 디코드 버퍼를 두고 있는데
seek된 후의 데이터를 줘야 하는데 버퍼의 데이터를 줘서 발생.버전 정보
AAR : 2018.08.16_r1
2018-08-14
네트워크 요청 시 no-cache 헤더 옵션 추가
구간재생(Preview) 안되는 현상 수정
다중 컨텐츠(인트로 포함된 영상) 재생 시 구간재생(Preview)이 있는 경우 다음 영상 안 넘어가는 현상 수정
버전 정보
AAR : 2018.08.14_r1
2018-08-02
Sound Decode 연속 실패 시 죽는 현상 수정
버전 정보
AAR : 2018.08.02_r1
2018-07-31
2018.07.27_r1의 로그 추가 버전
시작 시에 -1011오류 현상 확인을 위한 로그 추가버전 정보
AAR : 2018.07.31_r1
2018-07-26
워터마크 적용된 컨텐츠 재생 오류 나는 현상 수정
버전 정보
AAR : 2018.07.27_r1
2018-07-26
2018.07.23_r1에서 죽는 현상이 발견되어 수정
버전 정보
AAR : 2018.07.26_r1
2018-07-25
에러 문구 변경
버전 정보
AAR : 2018.07.23_r1
2018-07-20
2018.07.18_r1에서 죽는 현상 수정
2018.07.18_r1의 수정사항은 그대로 유지하고 해당 SDK는 폐기버전 정보
AAR : 2018.07.20_r1
2018-07-19
일부 롤리팝이상의 단말에서 HW Codec 연동 안되는 문제 수정
SW Codec 연동 시 B-Frame이 많이 들어 있는 컨텐츠의 경우 Frame Rate가 떨어지는 현상 수정
LMS데이터의 {JSON_DATA} 태그 적용 시 content_info블럭에 showtime이 빠져있는 현상 수정
OnInfoListener에 두개의 API 추가
void onDownloadRate(MediaPlayer mp, int downloadRate);
void onBandwidth(MediaPlayer mp, int bandwidth);버전 정보
AAR : 2018.07.18_r1
2018-06-28
drm callback kind 3의 result가 0이면 -8655가 아닌 -8657이 리턴되야 함.
재생 에러시 에러코드가 -1105로 overwrite되는 현상 수정
버전 정보
AAR : 2018.06.28_r1
2018-06-26
특정 단말에서 재생 중 버퍼링으로 빠지는 현상 수정(2018.03.28_r1 이후는 패치 요망)
버전 정보
AAR : 2018.06.26_r1
2018-06-14
일부 단말에서 화면 회전 시 SW 코덱에서 화면 깨짐 수정
SM-P605L(노트 10.1 2014 에디션, 4.4.2)
LG-F350K(G Pro2, 4.4.2)미디어 파일 가져오다 -8302 에러나는 현상 수정
버전 정보
AAR : 2018.06.11_r1
2018-06-04
Audio WaterMark 컨텐츠인 경우 죽는 현상 수정
버전 정보
AAR : 2018.06.04_r1
2018-05-30
북마크 DB 클래스를 생성하지 않아서 죽는 현상 수정
버전 정보
AAR : 2018.05.30_r1
2018-05-24
종료 시 nscreen, lms 데이터를 기본으로 async하게 보냄
offline bookmark 지원
hls 지원
버전 정보
AAR : 2018.05.24_r1
2018-04-19
화면 번짐 수정
Galaxy S3 및 다수의 갤럭시 모델
해당 시간의 자막 내용이 없는(공백) 경우 죽는 현상 수정
버전 정보
AAR : 2018.04.18_r1
2018-04-12
홈보이 HW코덱 연동 시 죽는 현상 수정
죽는 부분에 try-catch하여 자동으로 SW코덱으로 연동되도록 수정
버전 정보
AAR : 2018.04.12_r1
2018-04-09
화면 번짐 수정
ETOOSPAD5, ETOOSPAD6, KA-E410W(교원 아이나비)
MediaPlayer 생성자 변경
public MediaPlayer(Context context, KollusStorage storage, int port);
플레이어 종료 시 크래시 나는 현상 수정
롤리팝이상에서 하드웨어 코덱 사용 시 비디오 렌더링이 부드럽지 않는 현상 수정
코덱의 timestamp정보 오류
KollusStorage에 KollusPlayerCallbackListener 추가
스트리밍 재생 시 PlayerCallback에서 주고 받은 데이터를 확인할 수 있는 리스너
KollusStorage에 isDownloadedContent 제거
다운로드 완료된 컨텐츠를 다운로드할 경우 complete를 notify함
버전 정보
AAR : 2018.04.09_r1
2018-03-28
소프트웨어 볼륨 추가
MediaPlayer.setVolume
15단계를 기준으로 30% 증폭할 수 있습니다.
EDUDIC7(EDP-E70), DICPLE(IDT700)의 HW 코덱에서 화면 번짐 수정
Utils에서 아래와 같은 렌더링 관련 API 추가
public static void setRenderType(Context context, MediaPlayerBase.RENDER_MODE mode)
public static MediaPlayerBase.RENDER_MODE getRenderType(Context context);
public static MediaPlayerBase.RENDER_MODE getRenderModeByInt(int mode);
버전 정보
AAR : 2018.03.28_r1
2018-03-22
PlayCallback, DrmCallback에 expiration_playtime_type 추가
0이면 expiration_playtime의 값은 기존대로 영상 시간 기준
예로 30이면 배속에 상관없이 영상을 총 30초 분량 볼 수 있음1이면 expiration_playtime의 값은 영상 재생하는데 사용한 시간 기준
예로 30이면 2배속으로 볼 경우 영상을 총 60초 분량 볼 수 있음
MediaPlayer에 AV 싱크 조절 함수 추가
public void setAudioDelay(int timeMs);
소리가 느린 경우 양수값을 빠른 경우 음수값을 주면 됨
-2147483648 오류 코드
해당 오류는 다른 오류코드가 덮어져서 발생하는 코드로 원래 오류 코드가 나올 수 있도록 수정
재생 또는 다운로드 시작 시 -8056 날 수 있는 현상 수정
버전 정보
AAR : 2018.03.20_r1
2018-02-12
썸네일 다운로드 관련 스펙 추가
썸네일 다운로드를 Thread 방식으로 받을 경우 관련된 인터페이스
public interface KollusPlayerThumbnailListener {
void onCached(int index, int nErrorCode, String savePath);
}KollusStorage 추가된 API
/**KollusPlayerThumbnailListener 등록 함수
@param listener
*/
public void setKollusPlayerThumbnailListener(KollusPlayerThumbnailListener listener);KollusContent 추가된 API
/**SDK 내부에서 사용
@param enable 썸네일 활성화 여부 설정
*/
public void setThumbnailEnable(boolean enable);
/**
썸네일 활성화 여부
@return
*/
public boolean isThumbnailEnable();
/**
SDK 내부에서 사용
@param bThread 썸네일 다운로드 쓰레드 방식 여부 설정
*/
public void setThumbnailThread(boolean bThread);
/**
load 시 썸네일 다운로드가 Sync(no thread)인지 여부
@return
*/
public boolean isThumbnailDownloadSync();
버전 정보
AAR : 2018.02.13_r1
2018-01-24
weak reference 제거
notify하다가 죽는 이슈가 보고되었는데 GC에서 weak reference를 회수하여 발생한 것으로 의심이 됨
BroadCastReceiver를 unregister하다가 죽는 이슈가 보고되어 try~catch함
MediaPlayer의 release를 여러번 호출해서 발생했을 것으로 의심이 됨
재생 시작과 동시에 종료 시 죽는 현상 수정
자바단에서 미디어 정보를 확인 후에 native단으로 넘기는데 정보 확인 중에 종료가 되어 발생한 현상입니다.
미디어 정보를 native단에서 확인하도록 수정하였습니다.
버전 정보
AAR : 2018.01.24_r1
2018-01-09
중국어 간체 에러 메세지 추가
중복 차단 URL이 https인 경우 안되는 현상 수정
버전 정보
AAR : 2018.01.08_r1
2017-12-08
LMS 데이터에 치환자 {DEVICE}, {REAL_PLAYTIME} 추가
버전 정보
AAR : 2017.12.08_r1
2017-12-06
pause상태에서 seek시 current position이 seek전의 값을 주는 버그 수정
seek complete가 오기 전에 종료 시에 이어보기 정보가 0으로 올라가는 버그가 있어서
seek 전의 값이 올라가도록 수정하였는데 그 side effect 현상이었습니다.
seek하려고 하는 값이 올라가도록 수정하였습니다.IRIS tab 2에서 죽는 현상 수정
X86단말로 feature에 neon이 있어서 arm neon으로 라이브러리를 로드해서 발생했습니다.버전 정보
AAR : 2017.12.06_r1
2017-12-05(폐기)
seek complete 오기전에 seek 가능하도록 수정
버전 정보
AAR : 2017.12.05_r1
2017-11-30
약전계에서 seek후 곧바로 종료 시 ANR 현상 수정
종료 시 보내는 nscreen, lms 정보를 UI로 응답 받을지 여부 설정하는 함수 추가
기본은 On이며, Off이면 별도의 쓰레드로 해당 데이터를 처리하므로 종료가 조금 더 빠릅니다.
public void setNotifyLastReport(boolean bOn);
LMS에 {PLAY_STATUS}, {RUN_TIME} 치환자 추가
플레이어 상태 : play, pause, stop
버전 정보
AAR : 2017.11.30_r1
2017-11-01
구글 스토어의 보안 정책에 의한 변경
so를 다운로드 방식에서 앱에 탑재하는 방식으로 변경
플레이어 생성 interface 변경
MediaPlayerFactory 제거
MediaPlayer 추가
MediaPlayerBase의 아래의 interface가 MediaPlayer로 이동
OnPreparedListener
OnCompletionListener
OnErrorListener
OnInfoListener
OnBufferingUpdateListener
OnSeekCompleteListener
OnVideoSizeChangedListener
OnTimedTextDetectListener
OnTimedTextListener
OnExternalDisplayDetectListener
오류 수정
재생 중에 전화가 오면 LMS 데이터가 초기화되는 현상 수정
성우모바일 sm-508 단말에서 SW 코덱 화면 번짐 수정
HW 코덱은 여전히 지원 안됨
onPrepared 받은 후 start전에 배속 조정이 안되는 현상 수정
버전 정보
AAR : 2017.11.01_r1
2017-09-28
DRM Callback V1에서 다운로드 후 재생 시 -8687 오류 나는 현상 수정
Version
AAR : 2017.09.28_r1
2017-09-18
release시 sdk에서 app으로 메세지 전달 중에 crash 수정
네트워크가 좋은 상태에서도 오류나는 현상 수정
북마크, 이어보기, 진도률등이 영향을 받았습니다.
Version
AAR : 2017.09.18_r1
2017-09-07
Utils.getExternalMounts 제거
아래의 API가 Utils클래스에 추가
public static void setDecoderType(Context context, DecoderType type);
public static DecoderType getDecoderType(Context context);
Version
AAR : 2017.09.07_r1
2017-09-04
SW Codec 싱크 문제 수정
갤럭시 S6에서 재생 중에 Hang 걸리는 현상 수정
LMS Callback 데이터에 플레이어 실제 구동시간 추가
DRM Callback 데이터에 만료날짜 외에 체크 날짜 추가
KollusStorage.setCacheSize를 0으로 주면 스트리밍 재생 후 자동 캐시 삭제
DRM Callback kind2/kind3에 check_expiration_date 추가
expiration_date(A)를 길게 잡고 check_expiration_date(B)를 짧게 잡으면
컨텐츠 정보에는 만료기한이 A로 나오지만
B기한내에 kind3로 DRM 갱신을 하지 않으면 컨텐츠를 강제만료 시키는데 사용DRM Callback kind2 응답이 result가 1이 아니거나 네트워크로 응답을 받지 못하는 경우 강제 만료 처리
Version
AAR : 2017.09.04_r1
2017-07-24
Eduple W 화면 번짐 수정
Version
AAR : 2017.07.18_r1
2017-06-20
KollusMediaPlayer의 1670 라인 NullPointerException 오류 수정
캡춰툴을 감지하기 위해 실행되고 있는 앱을 검사하는데
실행되고 있는 앱이 없는 경우에 발생DRM Callback kind3의 일괄갱신과 재생을 위해 갱신 분리
reset_req가 1이면 일괄갱신이고 0이면 재생을 위한 호출임
Version
AAR : 2017.06.20_r1
2017-04-26
ICS미만에서 죽는 현상 수정
Version
AAR : 2017.04.26_r1
2017-02-21
setPlayingRate 인자 double에서 float로 변경
KollusContent의 배속 Disable관련 API 추가
public void setDisablePlayRate(boolean disable);
public boolean getDisablePlayRate();KollusContent의 Seekable End관련 API 추가
public void setSeekableEnd(int end);
public int getSeekableEnd();플레이어 생성자 프록시 포트 번호 인자 추가
public MediaPlayerFactory(int port, OnCreateListener listener);Duration을 미디어 메타정보에서 가져오지 않고 오디오, 비디오 트랙 정보에서 가져오는 것으로 수정
Version
AAR : 2017.02.02_r1
2017-01-16
DRM 일괄 갱신 리스너 변경
/**DRM 갱신 시작을 알려주는 함수
*/
void onDRMUpdateStart();
/**
현재 DRM정보 갱신 진행상황을 알려주는 함수
@param request 서버에 전송한 데이터
@param response 서버에 전송 받은 데이터
*/
void onDRMUpdateProcess(String request, String response);
/**
DRM 갱신이 완료됐을 때 알려주는 함수
*/
void onDRMUpdateComplete();
Version
AAR : 2017.01.13_r1
2017-01-12
DRM 일괄 갱신 시 콜백 데이터를 10건씩 묶어서 처리
DRM 콜백 오프라인 데이터를 10건씩 묶어서 처리
DRM callback kind 1, 3에 check_abuse 추가
check_abuse가 1이면 kind 3을 무조건 태우게 됩니다. 즉 네트워크 안되는 상황에서
플레이 안되게 됩니다.
Version
AAR : 2016.12.29_r1
2016-12-02
seek를 자주 할 경우 LMS의 real_playtime이 비정상적으로 커지는 현상 수정
Version
AAR : 2016.12.02_r1
2016-12-01
다운로드 컨텐츠 LMS 전송을 ON/OFF하는 API 추가
public abstract void setLmsOffDownloadContent(boolean bOff);북마크 전송 시 user value 추가
LMS 데이터에 real_playtime 추가
Version
AAR : 2016.11.21_r1
2016-11-11
ICS 단말에서 시작하자마자 죽는 현상 수정
curl관련 라이브러리(crypto, ssl, curl)를 static에서 shared로 바꾼 후 라이브러리간
함수를 찾지 못해서 발생되었습니다. 하나의 shared 라이브러리로 바꾼 후 해결되었습니다.
Version
AAR : 2016.11.09_r1
2016-11-03
다운로드 컨텐츠가 많은 경우 리스트를 가져올 때 오래 걸리는 현상 수정
캐시 설정 API 추가
KollusStorage.setCacheSize
Version
AAR : 2016.11.02_r1
2016-10-27
삼성 단말에 죽는 현상 수정
원인은 ffmpeg을 빌드한 컴파일러와 호환이 안되어 발생했습니다.
ndk-r12b의 4.9에서 ndk-r8e의 4.4.3으로 빌드했습니다.so 버전 관리를 SDK내부에서 합니다. 따라서 Library.Checker의 원형이 바뀌었습니다.
public void check(boolean releaseMode);
releaseMode가 true이면 로그가 최소화된 라이브러리를 체크하게 되고
false이면 로그가 있는 라이브러리를 체크하게 됩니다.KollusStorage의 public boolean isReady();가 추가 되었습니다.
리턴값은 setDevice(setDeviceASync)의 호출이 성공적으로 되어서 사용할
준비가 되었는 지 여부입니다.
Version
AAR : 2016.10.25_r1
2016-09-26
Android 7.0(Nougat) 지원
Version
Server : 1.4.3(r/d) d:로그 버전 r:로그 없는 버전
Player : 1.8.4(r/d) d:로그 버전 r:로그 없는 버전
Cache : 1.8.2(r/d) d:로그 버전 r:로그 없는 버전
Storage: 1.7.12
FFMpeg : 1.0
AAR : 2.19
2016-08-23
동일한 MediaContentKey로 연속해서 인트로 구성 시 발생하는 재생 오류 수정
MediaPlayerFactory.createMediaPlayer에 화면 출력 방식 인자 추가
public void createMediaPlayer(Context context, VideoWindowImpl impl, MediaPlayerBase.RENDER_MODE mode, boolean bAutoUpdate, KollusStorage storage, Uri path);
SW Codec의 경우 화면 출력 시 버퍼 화면사이즈를 설정을 해야 하는데
기존에는 모델명 기준으로 하드 코딩하여 2승수, 2배수, 16배수로 설정하였습니다.
따라서 단말 지원에 어려움이 발생하기에 아예 인자로 입력을 받아서 처리하는 방식으로 변경하였습니다.
MediaPlayerBase.RENDER_MODE.RENDER_MODEL가 기존 방식으로 화면 검은 색으로 나오거나 죽을 경우
RENDER_2_POWER, RENDER_2_MULTIPLE, RENDER_16_MULTIPLE 중 하나를 주어야 합니다.MediaPlayerBase.RENDER_MODE.RENDER_MODEL
MediaPlayerBase.RENDER_MODE.RENDER_2_POWER
MediaPlayerBase.RENDER_MODE.RENDER_2_MULTIPLE
MediaPlayerBase.RENDER_MODE.RENDER_16_MULTIPLE처음 play시에는 lms 보내도록 수정
Version
Server : 1.4.2(r/d) d:로그 버전 r:로그 없는 버전
Player : 1.8.2(r/d) d:로그 버전 r:로그 없는 버전
Cache : 1.8.1(r/d) d:로그 버전 r:로그 없는 버전
Storage: 1.7.12
FFMpeg : 1.0
AAR : 2.18
2016-08-03
자막이 잠깐 나왔다가 사라지는 현상 수정
엠피지오 Legend-Q에서 특정 영상 재생 안되는 현상 수정
영상의 화면이 사이즈가 16배수가 아닌 영상은 재생시 화면이 찌그러지거나 죽는 현상이 있었습니다.인트로 영상이 나온 후, 본 영상 재생시 비주기로 -8615 오류나는 현상 수정
Version
Server : 1.4.1(r/d) d:로그 버전 r:로그 없는 버전
Player : 1.8.1(r/d) d:로그 버전 r:로그 없는 버전
Cache : 1.8.0(r/d) d:로그 버전 r:로그 없는 버전
Storage: 1.7.12
FFMpeg : 1.0
AAR : 2.17
2016-07-12
백그라운드에서 영상이 시작한 후 포그라운드로 올라오면 락거리는 현상 수정
MediaPlayerFactory로 플레이어 생성 중 UI 락거리는 현상 수정
Version
Server : 1.4.0(r/d) d:로그 버전 r:로그 없는 버전
Player : 1.8.0(r/d) d:로그 버전 r:로그 없는 버전
Cache : 1.8.0(r/d) d:로그 버전 r:로그 없는 버전
Storage: 1.7.11
FFMpeg : 1.0
AAR : 2.16
2016-07-09
인트로 재생 후 본영상 재생 시 처음부터 재생 후 이어보기 되는 오류 수정
인트로 영상(5초)에서 Seek 시 오류나는 현상 수정
인트로 영상에서 포그라운드로 재진입 시에 검은 화면만 나오는 현상 수정
다운로드 중에 디스크 쓰기 오류(Disk Full)시 락걸림 현상 수정
cache, player, server OpenSSL 보안 패치
플레이어 생성방식 변경
Version
Server : 1.4.0(r/d) d:로그 버전 r:로그 없는 버전
Player : 1.8.0(r/d) d:로그 버전 r:로그 없는 버전
Cache : 1.8.0(r/d) d:로그 버전 r:로그 없는 버전
Storage: 1.7.11
FFMpeg : 1.0
AAR : 2.16
2016-06-14
Offline LMS 데이터 오류
-. serial 오류 수정
-. 누적되지 않는 오류 수정
Version
Server : 1.3.12(r/d) d:로그 버전 r:로그 없는 버전
Player : 1.7.22(r/d) d:로그 버전 r:로그 없는 버전
Cache : 1.7.10(r/d) d:로그 버전 r:로그 없는 버전
Storage: 1.7.9
FFMpeg : 1.0
AAR : 2.15
2016-06-01
ICS미만 단말에 죽는 현상 수정
오디오 컨텐츠의 경우 빠른 Seek시 죽는 문제 수정
다운로드 컨텐츠를 재생 시 간헐적으로 -8464 오류나는 현상 수정
Version
Server : 1.3.11(r/d) d:로그 버전 r:로그 없는 버전
Player : 1.7.21(r/d) d:로그 버전 r:로그 없는 버전
Cache : 1.7.9(r/d) d:로그 버전 r:로그 없는 버전
Storage: 1.7.8
FFMpeg : 1.0
AAR : 2.14
2016-05-19
비디오게이트웨이 서버 오류 메세지 분리
SDK내에서 처리하던 화면꺼짐 관련 코드 제거
Version
Server : 1.3.10(r/d) d:로그 버전 r:로그 없는 버전
Player : 1.7.20(r/d) d:로그 버전 r:로그 없는 버전
Cache : 1.7.9(r/d) d:로그 버전 r:로그 없는 버전
Storage: 1.7.7
FFMpeg : 1.0
AAR : 2.13
2016-04-26
DRM 일괄 갱신 API 변경
public void updateDownloadDRMInfo(KollusPlayerDRMUpdateListener listener, boolean bAll);
bAll --> true면 모든 컨텐츠 갱신, false면 만료된 컨텐츠만 갱신
Version
Server : 1.3.9(r/d) d:로그 버전 r:로그 없는 버전
Player : 1.7.19(r/d) d:로그 버전 r:로그 없는 버전
Cache : 1.7.8(r/d) d:로그 버전 r:로그 없는 버전
Storage: 1.7.6
FFMpeg : 1.0
AAR : 2.12
2016-04-18
멀티 코어 단말에서 SW 코덱 사용 시 AV 싱크 어긋나는 현상 수정
FFMpeg에서 코어 수만큼 디코딩 pending 버퍼가 있어서 발생DRM 일괄 갱신
StorageManger에 아래 함수 추가
public void updateDownloadDRMInfo(KollusPlayerDRMUpdateListener listener);인트로 추가
x86 64비트 단말(요가탭3 프로, 미패드 2) 지원
DRM Callback kind 3의 응답에 서버오류 발생 시 컨텐츠의 DRM 정책을 따르도록 수정
pause시 시간이 흐르는 현상은 재현이 안됨.
알려주신 재현 경로인 pause, resume을 반복하는 것은 resume시 seek이 있어서 발생했습니다.
seek시 코덱을 초기화하기 때문에 리소스를 많이 소모하는 작업으로 resume시 seek는 작업입니다.
일전에 pause된 상태에서 앱이 백그라운드로 내려간 후 포그라운드로 올라왔을 때
surface가 재생성되는 관계로 검은화면이 나오는 것을 방지하기 위해서 seek를 하라고 안내를 하였는데요.
Activity의 onResume시에만 seek를 하셔야 합니다.
Version
Server : 1.3.9(r/d) d:로그 버전 r:로그 없는 버전
Player : 1.7.19(r/d) d:로그 버전 r:로그 없는 버전
Cache : 1.7.8(r/d) d:로그 버전 r:로그 없는 버전
Storage: 1.7.6
FFMpeg : 1.0
AAR : 2.12
변경된 사항
FFMpeg을 제외한 모든 라이브러리가 바뀌었습니다.
2016-02-03
롤리팝이상의 단말에서 HD 2배속 재생 중 Seek 시 ANR 오류 수정
Version
Server : 1.3.6(r/d) d:로그 버전 r:로그 없는 버전
Player : 1.7.13(r/d) d:로그 버전 r:로그 없는 버전
Cache : 1.7.6(r/d) d:로그 버전 r:로그 없는 버전
Storage: 1.7.2
AAR : 2.9
변경된 사항
AAR, 플레이어 버전
참고로 이번 버전부터는 배속라이브러리를 Sonic으로 사용합니다.
2016-02-02
Note3에서 av sink 문제 수정
HW Codec은 속도가 빠르다는 생각에 output queue를 rendering 시점에서 가져와서 발생했습니다.
코덱에 input한 시점과 처음 output되는 시점의 차이만큼 sink가 차이가 발생했습니다.
즉, 단기 플레이어는 이어보기시에 seekToExact를 위해
decoded frame을 버리게 되는데 실제로는 output없기 때문에 버리지 못하고, 그 차이만큼 sink 벌어지게 되었습니다.
Note3가 유난히 sink 차이가 심한 이유는 codec의 input queue 22개로 타단말에 비해 input queue개수가
커서 눈으로 확연히 확인이 가능했던 것으로 보입니다.Nexus7 1세대에서 소리 늘어지는 현상 수정
사운드 코덱으로 HW Codec를 사용해서 발생했습니다. 기존대로 사운드는 SW Codec을 사용하도록 했습니다.배속 라이브러리 교체(player version 1.7.12)
MediaPlayerBase.setVideoRendering(boolean bRender) 추가
앱이 백그라운드 또는 포그라운드 진입시 자동으로 호출됩니다.
그이외 목적으로 사용하실 때 사용할 수 있도록 추가했습니다.
Version
Server : 1.3.6(r/d) d:로그 버전 r:로그 없는 버전
Player : 1.7.11(r/d) d:로그 버전 r:로그 없는 버전
기존 배속 라이브러리 (SoundTouch)로 G3 마시멜로우에서 소리끊김 현상이 보고 되었습니다.
1.7.12(r/d) d:로그 버전 r:로그 없는 버전
새로운 배속 라이브러리 버전(Sonic)으로 G3 마시멜로우에서 소리끊김 현상이 없어졌으며
SoundTouch에 비해 음질이 좋은 듯 합니다.
Cache : 1.7.6(r/d) d:로그 버전 r:로그 없는 버전
Storage: 1.7.2
AAR : 2.8
변경된 라이브러리
AAR
2016-01-21
ICS에서 죽는 현상 수정
MediaPlayerBase.OnInfoListener에 public void onFrameDrop(MediaPlayerBase mp) 추가
Version
Server : 1.3.6(r/d) d:로그 버전 r:로그 없는 버전
Player : 1.7.10(r/d) d:로그 버전 r:로그 없는 버전
Cache : 1.7.6(r/d) d:로그 버전 r:로그 없는 버전
Storage: 1.7.2
AAR : 2.7
변경된 라이브러리
AAR
2016-01-06
단기탭에서 고배속 & HW Code 연동 시 끊김 현상 제거
현재 시간을 가져올 때 smooth하게 올라가도록 수정(마시멜로우 코드 참조)중복 재생 차단 버그 수정
중복 재생 차단을 위해 playerId, userId를 등록하는데 네트워크 이슈로 실패 시
재시도를 하지 않고 check하여 중복차단되는 현상이 있음.
등록 실패 시 스트리밍 경우 3번 30초 주기로 재시도하고, 다운로드인 경우 30초 주기로 재시도함.-8018(ERROR_CURLE_PARTIAL_FILE) 에러 메세지 추가
서버에 요청한 사이즈와 응답으로 받은 데이터의 사이즈가 상이한 경우최초 실행 시 SW 코덱 우선으로 하면 다음 재생부터는 HW 코덱 연동 안되는 문제 수정
지원 가능한 코덱 목록을 최초 실행 시 Global 변수로 구성을 하는데,
SW 코덱 우선이면 목록 구성 시에 HW 코덱은 제외해서 발생함.
Version
Server : 1.3.6(r/d) d:로그 버전 r:로그 없는 버전
Player : 1.7.8(r/d) d:로그 버전 r:로그 없는 버전
Cache : 1.7.6(r/d) d:로그 버전 r:로그 없는 버전
Storage: 1.7.2
AAR : 2.6
변경된 라이브러리
AAR
2015-12-03
인텔 계열에서 LMS Hash정보가 잘못 올라가는 경우
JNI연동 시 메모리 릭 제거
G4 Marshmallow에서 미지원되는 현상
Version
Server : 1.3.5(r/d) d:로그 버전 r:로그 없는 버전
Player : 1.7.7(r/d) d:로그 버전 r:로그 없는 버전
Cache : 1.7.5(r/d) d:로그 버전 r:로그 없는 버전
Storage: 1.7.1
AAR : 2.5
변경된 라이브러리
AAR
라이브러리 체크 호출 규칙
mLibraryChecker = new LibraryChecker(this, mOnCheckerListener);
String serverVersion = "1.3.5d";
String playVersion = "1.7.7d";
String cacheVersion = "1.7.5d";
String storageVersion = "1.7.1";
String ffmpegVersion = "1.0";
mLibraryChecker.check(serverVersion, playVersion, cacheVersion, storageVersion, ffmpegVersion);
2015-11-25
롤리팝이상 NDK Codec 연동 시 맨 뒤로 Seek하면 에러코드 리턴하는 현상 수정
StorageManager에 releaseInstance함수 추가
reference count를 고려해서 자동으로 finish를 호출함.
Version
Server : 1.3.3(r/d) d:로그 버전 r:로그 없는 버전
Player : 1.7.5(r/d) d:로그 버전 r:로그 없는 버전
Cache : 1.7.4(r/d) d:로그 버전 r:로그 없는 버전
Storage: 1.7.1
Jar : 2.5
변경된 라이브러리
Jar
라이브러리 체크 호출 규칙
mLibraryChecker = new LibraryChecker(this, mOnCheckerListener);
String serverVersion = "1.3.3d";
String playVersion = "1.7.5d";
String cacheVersion = "1.7.4d";
String storageVersion = "1.7.1";
String ffmpegVersion = "1.0";
mLibraryChecker.check(serverVersion, playVersion, cacheVersion, storageVersion, ffmpegVersion);
2015-11-19
롤리팝이상 NDK Codec 연동 시 fail나는 오류 수정
Version
Server : 1.3.3(r/d) d:로그 버전 r:로그 없는 버전
Player : 1.7.3(r/d) d:로그 버전 r:로그 없는 버전
Cache : 1.7.3(r/d) d:로그 버전 r:로그 없는 버전
Storage: 1.7.1
Jar : 2.4
변경된 라이브러리
Jar
라이브러리 체크 호출 규칙
mLibraryChecker = new LibraryChecker(this, mOnCheckerListener);
String serverVersion = "1.3.3d";
String playVersion = "1.7.3d";
String cacheVersion = "1.7.3d";
String storageVersion = "1.7.1";
String ffmpegVersion = "1.0";
mLibraryChecker.check(serverVersion, playVersion, cacheVersion, storageVersion, ffmpegVersion);
2015-11-12
setDeviceASync시 UI Thread와 분리
setDevice(setDeviceASync)시 파일을 생성할 수 없는 위치로 호출 시 Hang되는 현상 수정
Version
Server : 1.3.1(r/d) d:로그 버전 r:로그 없는 버전
Player : 1.7.1(r/d) d:로그 버전 r:로그 없는 버전
Cache : 1.7.2(r/d) d:로그 버전 r:로그 없는 버전
Storage: 1.7.1
Jar : 2.2
변경된 라이브러리
Jar
라이브러리 체크 호출 규칙
mLibraryChecker = new LibraryChecker(this, mOnCheckerListener);
String serverVersion = "1.3d";
String playVersion = "1.7d";
String cacheVersion = "1.7d";
String storageVersion = "1.7";
String ffmpegVersion = "1.0";
mLibraryChecker.check(serverVersion, playVersion, cacheVersion, storageVersion, ffmpegVersion);
2015-11-03
S2에서 SW Codec 연동 시 화면 색상 번짐
오디오 컨텐츠를 재생하면 SW Codec으로 연동되도록 설정이 변경되는 버그 수정
bitrate이 큰 컨텐츠를 seek시 버퍼링이 오래 걸리는 현상 수정
롤리팝이상인 경우 무조건 SW Codec연동되도록 수정
Version
Server : 1.3(r/d) d:로그 버전 r:로그 없는 버전
Player : 1.7(r/d) d:로그 버전 r:로그 없는 버전
Cache : 1.7(r/d) d:로그 버전 r:로그 없는 버전
Storage: 1.7
Jar : 1.12
변경된 라이브러리
Jar
라이브러리 체크 호출 규칙
mLibraryChecker = new LibraryChecker(this, mOnCheckerListener);
String serverVersion = "1.3d";
String playVersion = "1.7d";
String cacheVersion = "1.7d";
String storageVersion = "1.7";
String ffmpegVersion = "1.0";
mLibraryChecker.check(serverVersion, playVersion, cacheVersion, storageVersion, ffmpegVersion);
2015-10-28
G4에서 죽는 이슈 수정
2, 시스템 시간 조정 시 만료처리 안되는 이슈 수정
A시간에 보고 난 후 만료시간(B)이 지난 후 볼 때는 만료처리가 되나
A~B사이의 시간으로 되돌리면 재생되는 이슈 수정
Version
Server : 1.2.2(r/d) d:로그 버전 r:로그 없는 버전
Player : 1.6.2(r/d) d:로그 버전 r:로그 없는 버전
Cache : 1.6.2(r/d) d:로그 버전 r:로그 없는 버전
Storage: 1.6.2
Jar : 1.9
변경된 라이브러리
Jar
라이브러리 체크 호출 규칙
mLibraryChecker = new LibraryChecker(this, mOnCheckerListener);
String serverVersion = "1.2.2d";
String playVersion = "1.6.2d";
String cacheVersion = "1.6.2d";
String storageVersion = "1.6.2";
String ffmpegVersion = "1.0";
mLibraryChecker.check(serverVersion, playVersion, cacheVersion, storageVersion, ffmpegVersion);
2015-10-20
-8682 에러 문구 추가
2, 네트워크 타임아웃 설정(StorageManager는 재시도 회수 파라메터도 있음) API 추가
Version
Server : 1.2(r/d) d:로그 버전 r:로그 없는 버전
Player : 1.6(r/d) d:로그 버전 r:로그 없는 버전
Cache : 1.6(r/d) d:로그 버전 r:로그 없는 버전
Storage: 1.6
Jar : 1.8
변경된 라이브러리
Jar
libcrypto.so <--- 제거
libcurl.so <--- 제거
라이브러리 체크 호출 규칙
mLibraryChecker = new LibraryChecker(this, mOnCheckerListener);
String serverVersion = "1.2d";
String playVersion = "1.6d";
String cacheVersion = "1.6d";
String storageVersion = "1.6";
String ffmpegVersion = "1.0";
mLibraryChecker.check(serverVersion, playVersion, cacheVersion, storageVersion, ffmpegVersion);
DRM Callback, PlayCallback 시 메세리 처리 방식
다운로드 중(DRM Callback : kind 1, kind 2)
a. OnKollusStorageListener.onError시
Sample Source의 DownloadActivity.java의 showErrorMessage함수 참조(150 라인)
서비스 프로이저의 메세지가 있는 경우 KollusStorage.getLastError()가 Not NULL임b. KollusPlayerDRMListener의 onDRMInfo에서 KollusPlayerDRMListener.DCB_INFO_DELETE인 경우
Sample Source의 DownloadActivity.java의 onDRMInfo 참조(233 라인)
KollusContent.getServiceProviderMessage()플레이 중(Drm Callback : kind 3, Play Callback : kind 1, kind 3)
서비스 프로이저의 메세지가 있는 경우 MediaPlayerBase.getErrorString이 Not NULL임.
(인자의 에러코드는 의미 없음, KollusStorage.getLastError와 같은 성격의 임)
샘플 소스의 PlayActivity.java의 onError함수 참조(484 라인)
2015-10-14
KollusStorage의 796라인에서 NullPointerException 오류 수정
컨텐츠를 삭제 후 콜백이 오는 경우 발생
Version
Server : 1.1(r/d) d:로그 버전 r:로그 없는 버전
Player : 1.5.1(r/d) d:로그 버전 r:로그 없는 버전
Cache : 1.5(r/d) d:로그 버전 r:로그 없는 버전
Storage: 1.5
Jar : 1.7
변경된 라이브러리
Jar
라이브러리 체크 호출 규칙
mLibraryChecker = new LibraryChecker(this, mOnCheckerListener);
String serverVersion = "1.1d";
String playVersion = "1.5.1d";
String cacheVersion = "1.5d";
String storageVersion = "1.5";
String ffmpegVersion = "1.0";
mLibraryChecker.check(serverVersion, playVersion, cacheVersion, storageVersion, ffmpegVersion);
2015-10-12
FFMpegExtractor.cpp에서 Crash 나는 현상 수정
Version
Server : 1.1(r/d) d:로그 버전 r:로그 없는 버전
Player : 1.5(r/d) d:로그 버전 r:로그 없는 버전
Cache : 1.5(r/d) d:로그 버전 r:로그 없는 버전
Storage: 1.5
Jar : 1.6
변경된 라이브러리
Jar
라이브러리 체크 호출 규칙
mLibraryChecker = new LibraryChecker(this, mOnCheckerListener);
String serverVersion = "1.1d";
String playVersion = "1.5d";
String cacheVersion = "1.5d";
String storageVersion = "1.5";
String ffmpegVersion = "1.0";
mLibraryChecker.check(serverVersion, playVersion, cacheVersion, storageVersion, ffmpegVersion);
2015-10-08
약전계에서 종료 시 Dead Lock이나 Crash될 수 있는 부분 제거
북마크 속도 이슈
BookmarkAdapter.java의 getView에서 Bitmap가져오는 부분을 add로 이동
PlayActivity.java의 onBookmark부분 수정
Version
Server : 1.1
Player : 1.5
Cache : 1.5
Storage: 1.5
Jar : 1.5
변경된 라이브러리
Jar
2015-10-05
LMS 데이터 보안
HW Codec연동 시 갤럭시 그랜드 맥스에서 무한 죽는 현상 수정
스토리지 매니저 초기화 ASync 함수 추가
StorageManager의 initialize에서 했던 setDevice 제거로 파리메터 변경
Version
Server : 1.1
Player : 1.4
Cache : 1.4
Storage: 1.4
Jar : 1.4
변경된 라이브러리
Jar
libcurl.so
2015-09-17
다운로드할 라이브러리가 없는 경우 네트워크가 안되더라도 onDownloadCheckComplete가 호출되도록 수정
Version
Server : 1.0
Player : 1.3
Cache : 1.3
Storage: 1.3
Jar : 1.4
2015-09-15
android 4.0미만 지원
ICS미만인 경우 내장 플레이어 연동 (배속, 오디오 워터마크 지원 안됨)중복 차단 체크 주기 오류 수정
300초 미만의 컨텐츠를 재생을 하면 체크 주기가 짧은 컨텐츠에 맞춰지는 오류 수정다운로드의 경우 LMS 정보의 start_at를 다운로드 당시의 서버시간이 아닌 재생시의 단말 시간을 내려 줌
API 인자 MediaContentKey 로 변경
LMS데이터에 checksum추가
Version
Server : 1.0
Player : 1.3
Cache : 1.3
Storage: 1.3
Jar : 1.3
2015-07-20
오디오 워터 마크가 적용된 컨텐츠의 경우 최대 배속을 1.5로 제한
1.5배속을 초과하는 경우 오디오 워터 마크가 검출이 안됨중복 재생 체크 주기 변경
300초가 안되는 컨텐츠의 경우 체크 주기를 Duration의 절반으로 함(최소 30초).캡쳐 차단 프로세스를 SDK로 이동
소니 엑스페리아 Z1, Z2, Z3에 기본으로 내장되어 있는 켭쳐툴 추가
DRM Callback 1.6.22 적용
Player Callback 1.0.1 적용
2015-05-26
Arm 64bit Cpu 지원
2015-03-18
DRM V1.6 적용
북마크 & 이어보기 고객사 서버 연동
다운로드 컨텐츠 정보 추가(resolution, bitrate)
플레이 중 wifi disable 시킬 경우 죽는 문제 수정
wifi disable를 시킬 경우 wifi display detected receiver가 오는데 type cast 오류
변경된 라이브러리
kollusplayer_sdk.jar
Player Version, Cache Version, Storage Version이 모두 "1.1"로 변경됨
LibraryChecker의 check("1.1", "1.0", "1.1", "1.1");
2015-03-02
필수 라이브러리 로드를 앱에서 SDK로 이동
(예제의 InitActivity.java에서 System.load, System.loadLibrary제거)버전 정보 API 추가
변경된 라이브러리
kollusplayer_sdk.jar
2014-12-10
롤리팝 지원
변경된 라이브러리
kollusplayer_sdk.jar
2014-11-19
SW Codec의 경우 Seek시 B-Frame 디코딩 오류
이어보기시 첫 LMS 데이터 오류 수정
LMS의 JSON Data항목 추가
playtime_percent
last_play_atPlay Callback 추가
device name 변경
Build.MODEL에서 Build.DEVICE+"/"+Build.MODEL로 변경북마크 INDEX 추가
변경된 라이브러리
libStorageMgr.so
libKollusPlayer_CacheManager.so
libKollusPlayer_ICS.so
libKollusPlayer_JB.so
libKollusPlayer_KK.so
kollusplayer_sdk.jar
2014-10-29
배속 조정 후 정배속인 경우 배속 모듈 타는 버그 수정
일부 단말 H/W Codec(google코덱만 있는 경우) 안되는 문제 수정
다운로드 컨텐츠에 대해서도 진도률 적용
네트워크가 안될 때는 저장 후 다음 재생 시 네트워크가 가능할 때 전송진도률 데이터를 pause 시 보내고 주기적으로는 보내지 않음.
resume 시 보내고 다시 주기적으로 보냄.
변경된 라이브러리
libKollusPlayer_CacheManager.so
libKollusPlayer_ICS.so
libKollusPlayer_JB.so
libKollusPlayer_KK.so
kollusplayer_sdk.jar
2014-10-13
동영상 상세 정보 새로운 스펙 적용
다운로드 폴더 자동 완성
반복적인 pause, resume시 죽는 현상
소프트웨어 코덱으로 설정 후 seek를 여러번 시도 시 hang 걸림 현상 수정
변경된 라이브러리
libStorageMgr.so
libKollusPlayer_CacheManager.so
libKollusPlayer_ICS.so
libKollusPlayer_JB.so
libKollusPlayer_KK.so
kollusplayer_sdk.jar
2014-09-19
x86 단말 지원
이미지 저장 기능 추가(Only SW Codec)
water mark 여부 api 추가
변경된 라이브러리
libStorageMgr.so
x86/libffmpeg.so
libKollusPlayer_CacheManager.so
libKollusPlayer_ICS.so
libKollusPlayer_JB.so
libKollusPlayer_KK.so
kollusplayer_sdk.jar
2014-08-28
스킨에 로고가 없는 경우 로고패스에 "null"를 주는 현상 수정
메모리 릭 제거
컨텐츠 재생중 다운로드중에 네트웍 단절시 에러를 발생하지 않는 버그 수정
게이트웨이 서버에 네트웍 요청 횟수 제한 처리
자막 파싱 오류
srt파일에 줄바꿈이 2번이상 있는 경우Playback Complete시 N-Screen정보 잘못 올리는 버그 수정
Download Contents 상세정보 URL 추가
MediaInfo에 TV-Out Disable flag 추가
킷캣에서 외장메모리 지원
AudioOnly인 경우 Seek 안되는 문제 수정
초기 버퍼링에 걸린 시간 서버에 전송
2014-07-02
폴더 삭제시 같은 레벨에 있는 파일도 삭제되는 버그 수정
사운드 모노로 나오는 현상 수정
ffmpeg 라이브러리를 기본 앱에서 빼고 다른 앱으로 변경
String libraryPath = "";
Cpuinfo cpuInfo = Cpuinfo.getInstance();
String cpuName = cpuInfo.getCpuName().toLowerCase();
if(cpuName.startsWith("armv7")) {
if(cpuInfo.hasFeature("neon"))
libraryPath = "/data/data/com.kollus.ffmpeg.v7.neon/lib";
else
libraryPath = "/data/data/com.kollus.ffmpeg.v7/lib";
}
else if(cpuName.startsWith("armv6")) {
if(cpuInfo.hasFeature("vfp"))
libraryPath = "/data/data/com.kollus.ffmpeg.v6.vfp/lib";
else
libraryPath = "/data/data/com.kollus.ffmpeg.v6/lib";
}mMediaPlayer = new MediaPlayer(mContext, mVideoWindowImpl);
mMediaPlayer.initialize(libraryPath);스트리밍 시 빈번한 re-connection 제거
다운로드 시 단말 개수 제한 체크
스킨 적용된 컨텐츠를 다운로드 받은 경우, 다운로드 리스트에서 재생 시에도 스킨 적용
중복 차단 팝업 시 백단에서 여전히 재생이 되는 현상 수정
진도 관리 내부 항목 추가
LMS {JSON_DATA}에 content_provider_key, start_at, device, OS, OS Version 항목 추가logo파일을 내부에서 다운 받아서 로컬 패스로 넘겨줌
자막이 있는 경우 sdk에서 처리
addTimedTextSource를 호출하지 않아도 됨
- 1 3.0.2
- 2 3.0.1
- 3 3.0.0
- 4 2.0.23
- 5 2.0.22
- 6 2.0.21
- 7 2.0.20
- 8 2.0.19
- 9 2.0.18
- 10 2.0.17
- 11 2.0.16
- 12 2.0.15
- 13 2.0.14
- 14 2.0.13
- 15 2.0.12
- 16 2.0.11
- 17 2.0.10
- 18 2.0.9
- 19 2.0.8
- 20 2.0.7
- 21 2.0.6
- 22 2.0.5
- 23 2.0.4
- 24 2.0.3
- 25 2.0.2
- 26 2.0.1
- 27 2.0.0
- 28 2021.06.14
- 29 2021.02.05
- 30 2020.12.09
- 31 2020.11.30
- 32 2020.11.12
- 33 2020.11.02
- 34 2020.10.19
- 35 2020.08.10
- 36 2020.08.03
- 37 2020.07.21
- 38 2020.06.08
- 39 2020.04.22
- 40 2020.03.20
- 41 2020.02.18
- 42 2020.01.18
- 43 2019.12.10
- 44 2019.11.13
- 45 2019.10.08_r1
- 46 2019.08.22_r1
- 47 2019.05.23_r1
- 48 2019.04.09_r1
- 49 2019.03.21_r1
- 50 2019-02-22
- 51 2019-02-15
- 52 2019-01-08
- 53 2018-12-11
- 54 2018-11-22
- 55 2018-08-24
- 56 2018-08-16
- 57 2018-08-14
- 58 2018-08-02
- 59 2018-07-31
- 60 2018-07-26
- 61 2018-07-26
- 62 2018-07-25
- 63 2018-07-20
- 64 2018-07-19
- 65 2018-06-28
- 66 2018-06-26
- 67 2018-06-14
- 68 2018-06-04
- 69 2018-05-30
- 70 2018-05-24
- 71 2018-04-19
- 72 2018-04-12
- 73 2018-04-09
- 74 2018-03-28
- 75 2018-03-22
- 76 2018-02-12
- 77 2018-01-24
- 78 2018-01-09
- 79 2017-12-08
- 80 2017-12-06
- 81 2017-12-05(폐기)
- 82 2017-11-30
- 83 2017-11-01
- 84 2017-09-28
- 85 2017-09-18
- 86 2017-09-07
- 87 2017-09-04
- 88 2017-07-24
- 89 2017-06-20
- 90 2017-04-26
- 91 2017-02-21
- 92 2017-01-16
- 93 2017-01-12
- 94 2016-12-02
- 95 2016-12-01
- 96 2016-11-11
- 97 2016-11-03
- 98 2016-10-27
- 99 2016-09-26
- 100 2016-08-23
- 101 2016-08-03
- 102 2016-07-12
- 103 2016-07-09
- 104 2016-06-14
- 105 2016-06-01
- 106 2016-05-19
- 107 2016-04-26
- 108 2016-04-18
- 109 2016-02-03
- 110 2016-02-02
- 111 2016-01-21
- 112 2016-01-06
- 113 2015-12-03
- 114 2015-11-25
- 115 2015-11-19
- 116 2015-11-12
- 117 2015-11-03
- 118 2015-10-28
- 119 2015-10-20
- 120 2015-10-14
- 121 2015-10-12
- 122 2015-10-08
- 123 2015-10-05
- 124 2015-09-17
- 125 2015-09-15
- 126 2015-07-20
- 127 2015-05-26
- 128 2015-03-18
- 129 2015-03-02
- 130 2014-12-10
- 131 2014-11-19
- 132 2014-10-29
- 133 2014-10-13
- 134 2014-09-19
- 135 2014-08-28
- 136 2014-07-02
Copyright © CATENOID, lnc. All Rights Reserved.
E-mail. support@catenoid.net | Tel. 1544-4367