- Created by jpteam (Unlicensed) , last modified by Jungyeon Kim on Jan 31, 2024
- Attachments
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 36 Next »
2.0.16 (2024.01.23)
MultiDRMコンテンツのサムネイル、スナップショットイメージエラーを修正
区間再生パラメータ追加
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 (2023.11.01)
断続的に発生したメディア パーシング エラー(-8633)を修正
エラー レポート時のエンコーディング プロファイルのキー追加
prepared前に終了時、LMSのruntimeデータの収集エラー修正
ブックマークタイトルにurlencodeを追加
2.0.14 (2023.08.10)
Edge接続時にHttp Request Headerを追加
2.0.13 (2023.08.09)
HLS、Mpeg-Dashの場合、エラーログの収集ができないエラーを修正
エラーログ収集時パラメータの欠落している現象を修正
Download DRM v2支援
2.0.12 (2023.07.18)
初期バッファリング収集データの追加
onPrepared以降、最初の再生するタイミングから字幕を表示修正
2.0.11 (2023.06.09)
Virtual Master検知パッチされたライブラリの適用
ライブ再生の試み時にエラーが発生した場合、エラーレポートが抜ける現象を修正
最初のエッジ接続時、UserAgentにcpkが抜ける現象を修正
フォレンジックウォーターの開始エラー時にonPreparedがNotifyされて再生される現象を修正
on Prepared以降、初再生の試み時に字幕が上がるように修正
Emulator Checker Listenerに下記APIを追加
/**
* 再生中にデバッグモードがオンになっている場合に呼び出されます。
*/
public void onDetectDebuggingMode();
2.0.10 (2023.03.14)
FD_SETSIZE 1024制限でソケットが1024より大きい場合、FD_SETからCrashされ、selectからpollに変更
ストレージマネージャーでエラーが発生した場合、stパラメータが漏れる現象を修正
Terutenモジュールアップデート
Terutenモジュール初期化失敗時エラーレポート漏れ現象修正
エミュレータ検出時にエラーレポートを追加
TimeShiftを最大にseek時、間欠的に-3012エラーが出る現象を修正
2.0.9 (2022.09.29)
再生終了時にANR現像を修正
Teruten エミュレータチェックモジュールの追加
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 (2022.08.23)
マルチ字幕対応
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, int trackIndex);
2. 下記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 (2022.07.01)
FireTV App専用のSDK提供
64ビットに対応
ダウンロードリンクにdownloadパラメータをSDK内に追加
アプリにあったものをSDK段に移す(顧客から漏れてネットワークthrottlingにかかり遅い現象を防止)
アプリ脆弱性警告及びエミュレータ感知できない問題でTerutenエミュレータチェックライブラリー除去
Android11以上では権限問題で最初からチェック不可能
以下のCPUアーキテクチャの除去
armeabi, mips, mips64
2.0.6 (2022.02.08)
TimeShiftする際のcurrent positionとdurationエラーを修正
進捗率にVolume, Playrate関連スペックを追加
prepareAsync 重複リクエストによりバッファリング時間がマイナスにリターンされる問題を修正
releaseバージョンでProguardを適用した際にCrashする問題を修正
lmsに置換子 {PLAY_BLOCK_JSON}を使用する際のデータエラーを修正
2.0.5 (2021.11.22)
バグ修正: ExoPlayer seekする際のcomplete notifyする時点を変更
一般的にシーク動作がリクエストされると、Playerは最も近いキーフレームに移動します。
例)動画の10秒時点にキーフレームがあって、11秒時点をシークするようにリクエストされた場合、シーク動作後の実際の場所は10秒になります。
※全てのVideo Playerはこの方式で動作します。
バグ修正前
例)11秒時点にシークをリクエストされた場合に10秒時点にキーフレームがあると上記動作のようにPlayerは10秒に移動するが、シーク動作に対するリターン値は11秒になる。
実際再生には影響がなくても、LMS Callbackなどに影響する可能性あり。
バグ修正後
シーク動作のリターン値が、実際シーク関数が完了された時点(10秒)と一致する。
スペック変更: setBandwidth動作変更
変更前
"setBandwidth"関数をリクエストしても、exoPlayerはバッファされたストリームサイズが25秒未満にならない限り、ビットレートを変更しない。
変更後
"setBandwidth"関数をリクエストすると、exoPlayerはバッファされたストリームサイズを無視し、関数がリクエストされた直後にビットレートを変更する。
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 (2021.10.28)
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動作を妨害するMulti DRM コンテンツのストリーミング再生終了後、キャッシュフォルダを削除
2.0.3 (2021.10.21)
サムネイルダウンロード完了及びABRの画質が変更する際のデバッグログを追加
→バッファリングに時間が掛かる区間を確認するサムネイルダウンロードログを追加
→初期画質変更の際の遅延を確認するためのログを追加ログサーバーとの通信をリクエストされたプロトコルに合わせて動作するように修正
→httpsでリクエストした際に、SDK内部で行われるhttp通信はlocal proxyを除いて全て削除Multi DRMサムネイルダウンロード方式を、非同期方式で動作できるオプションを追加
→サムネイルダウンロードに掛かる時間がバッファリングに影響を与えるため、この動作方式を同期→非同期に変更
→関連インターフェース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();
アプリ側では上記のように作業してサムネイルダウンロードが完了されるまでには表示されないようにUI側で処理が必要
他にこの機能の制御はトークンで行います。
https://support.catenoid.net/display/SUPJP/JWT
上記の内容の中、thumbnailのthreadをtrueに指定します。small thumbnailに対応
サムネイルサイズは、254*108, 50*50の2つとなり、オプション処理でsmallサイズでダウンロードすることが可能
関連オプションは
https://support.catenoid.net/display/SUPJP/JWT
上記の内容の中、thumbnailのtypeをsmallに指定します。
2.0.2 (2021.10.17)
再生開始後、終了する際に落ちる問題を修正
→ネットワークに接続をトライする際に終了されるとANRが発生する可能性あり
SDK内部でcurlを使用しているため、ネットワークに接続をトライする際には止める手段がないため弱電界でのANRは回避が不可能DASH, HLSの場合、UserAgentが間違って取得される問題を修正
→ログ取得プロセスに問題があったため、顧客サービスには関係ない内容MediaPlayerにて以下のAPIを追加
/**
* バッファリング時間を設定する関数、prepareAsyncの前にリクエストする。DASH, HLSのみで動作
* @param minBufferMs
* @param maxBufferMs
*/
public void setBufferDurationsMs(int minBufferMs, int maxBufferMs);
→低画質から高画質に転換されるまで30秒が掛かるということで、loadControlが効かない可能性があると判断し、
loadControlのsetBufferDurationMs因子の1番、2番目因子の値をそれぞれ6秒、12秒で固定していたものを、外部から取得した値で設定できるようなAPIを追加しました。※ネットワーク状態によって既にバッファリングされたものや最高画質再生に至らない回線速度の場合、バッファリングのstart, endがなくても30秒以上掛かる可能性があります。
2.0.1 (2021.10.07)
load途中で再生終了する時にANRを防止(for ExoPlayer)
intro映像、またはseekableがfalseの場合ブックマークを取得しないように修正(for ExoPlayer)
再生中エラーの時にエラーレポートが抜ける問題を修正 (for ExoPlayer)
ABR 画質を選択する際に画質を固定しないで、該当画質までABRするように変更 (for ExoPlayer)
ABR Playlistの最初項目を再生するように修正 (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 (2021.08.31)
forensic watermark追加
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' }
Multi 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);/**
* エミュレータ使用中かどうか
* @return
*/
public boolean useBlockEmulator();EmulatorCheckerListenerにてAPIを追加
public void onDetectRooting();
AndroidManifest.xmlにて <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> permissionを追加
再生開始後すぐにクラッシュする不具合を修正
prepare 途中に ExoPlayerが生成されずdestroyDisplayした際にNullPointerExceptionが発生
弱電系状態での -8403エラーを修正
ExoPlayerの timeout(8秒)によってリトライするとproxy側では既にclientが存在することに判断されたため発生
500ms sleep 後、connectionがない場合には正常処理
2021.02.05
再生開始直後に終了する現象を修正
* 終了の際にURLをnull処理する際に、prepareのURL値がnullだったため発生。Lockerを追加
NDK Codecで発生するCashの疑いがある要素を修正
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
intro動画で正確なSeekを繰り返した際に落ちる問題修正
----------------------------------------------------------------------------------------
2020.11.30
User Agent 規則変更 (pc, mobile, tablet 区別)
KollusContentに最大倍速関連APIを追加
/**
SDK 内部で使用
@param rate
*/
public void setMaxPlaybackRate(int rate);
/**
最大倍速を取得する関数
@return
*/
public int getMaxPlaybackRate();
----------------------------------------------------------------------------------------
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データをPlayerではなく別途APIで取得する際に、
結果がリターンされるリスナー
*/
public interface StoredLMSListener {
/**
保存されたLMSデータを全て転送してから取得する関数
@param successCount 転送成功件数
@param failCount 転送失敗件数
*/
void onSendComplete(int successCount, int failCount);
}
ライブ再生中、重複再生遮断に必要な情報が抜けていた問題を修正
----------------------------------------------------------------------------------------
2020.11.02
Current Position エラー修正
Rollypop以前の場合、Pallycon Agentを生成しない
----------------------------------------------------------------------------------------
2020.10.19
再生初期バッファリング時間reportingを間違ったURLに送る問題を修正
再生初期バッファリング時間reportingをASyncするように変更
ダウンロードするためにコンテンツがLoadされたかを確認するAPIを追加
KollusContentに以下のAPIを追加
public void setLoaded(boolean bLoaded);//内部のみ使用
public boolean isLoaded();
prepare 完了される前に再生終了した際に落ちる問題を修正 (マーケットの一部NullPointExceptionと関連)
prepare直後に終了した際に、uriがnullのため落ちる
prepare後、onPrepared リクエストする時点に終了した場合、コンテンツ情報がnullのため落ちる
ライブPlaycallback resultが 0の場合、エラーメッセージがないと間違ったエラーコードが上がる問題を修正
内部で管理するダウンロードリストに存在しないmckでdowload apiをリクエストした際に落ちる問題を修正
ダウンロードするためにloadし、削除してからdowload apiをリクエストすると判断
ブックマークタイトルが抜ける問題を修正(for ExoPlayer)
----------------------------------------------------------------------------------------
2020.08.10
2020.06.08_r1 Base
ネットワークが断絶されていてもタイムアウトが適用されるように修正
introで、Audio watermarking映像を再生し、次にAudio watermarkingが適用されてない映像を再生した際に落ちる問題を修正
ExoPlayer リピート再生するときにバッファリング表示になる問題を修正
リピート再生の時に、暫くバッファリング状態になる可能性があるため、リピート再生中にはバッファリング表示をしないように修正することを推奨します。
disable_nscreenが trueのダウンロードコンテンツにnscreen情報が出る問題を修正
オフラインブックマークタイトルが抜ける問題を修正
Multi DRM ダウンロード機能を追加
KollusContentにpublic @ContentType int getContentType(); 追加
KOLLUS_CONTENT, EXT_DRM_CONTENT
ダウンロード中にはファイルサイズ情報が正確に取得できない可能性があります。
User Agent 規則変更
ライブLMSデータのエラーを修正
10. ライブにVideo watermark表示されない問題を修正
----------------------------------------------------------------------------------------
2020.08.03
オフラインブックマークタイトルが抜ける問題を修正
オフラインブックマークの追加を連打すると落ちる問題を修正
----------------------------------------------------------------------------------------
2020.07.21
2020.03.20_r1にロールバック
VMチェック不具合エラーが報告されない時点(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 Playcallback対応
No Kollus VOD ネットワークタイム適用
VMチェックするに変更
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がない場合、デフォルトPlayerを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);
introがある映像で、本映像にPlayCallbackでエラーが発生した際にhangになる問題を修正
MediaPlayerのsetCencProxyPath関数を除去 (MediaInfoを使用)
----------------------------------------------------------------------------------------
2020.03.20
Audio watermarkingが適用されている場合、全体リピート再生した際に画面更新されない問題を修正
----------------------------------------------------------------------------------------
2020.02.18
Seekする際に次の区間まで字幕が表示されない問題を修正
onPrepared以降に字幕が出るように修正
----------------------------------------------------------------------------------------
2020.01.18
ToolChain 及びビルドスクリプトを変更
CpuInfoにisSupportDevice関数を追加
外部からPlayer 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 追加
- No labels