Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
2

3.0.

21

2 (2024.

06

11.

14

07)

  1. Google未認証端末にPallyconライブラリの初期化失敗を修正
    端末名で初期化skip

2.0.20 (2024.05.20)

  1. AI倍速コンテンツ情報をN-screenに追加

  2. Kollus User AgentにChrome OSを追加

2.0.19 (2024.03.28)

次の動画再生追加

Code BlockKollusContentに下記のAPIを追加 /** * 次の動画再生 Callback URL 獲得する関数

Released date: 2024-11-07

Added APIs

  • KollusContent に public boolean isIgnoreZero() 追加
    再生URLのQuery parameterとしてign_z flagの値を返還します。(default: false)
    変更理由: 動画を再生開始から10秒以内、または終了前の10秒以内に停止した場合でも、次回の再生時に「続き再生」が有効となる機能を追加しました。
    影響範囲: 追加機能を有効化するお客様
    アプリの変更有無: No (変更不要)追加機能を有効化する場合、再生URLのQuery parameterにign_z flagの値を追加

Fixed

  • AI倍速のバグ修正
    変更理由: media3の適用に伴い発生したバグの修正
    影響範囲: AI倍速機能をご利用中のお客様
    アプリの変更有無: No (変更不要)

  • Googleのアプリ脆弱性警告への対応
    警告の内容:アプリに暗示的な内部インテントの脆弱性があります。
    対象モジュール:com.teruten.mcm.module.a0.F
    変更理由: Googleアプリの脆弱性警告に対応するためのモジュールアップデート
    影響範囲: Google Play Consoleにおいて当該警告が表示された場合にアップデートが必要
    アプリの変更有無: No (変更不要)

3.0.1 (2024.09.11)

Released date: 2024-09-11

Added Features

  • LMS Callback 転送項目を追加(Background <> Foreground切り替え時のタイムスタンプ
    変更理由: 新規APIの追加
    影響範囲: 新規APIなので利用しない場合、影響なし
    アプリの変更有無: No

Added APIs

  • Added Features項目の1のため、APIをMediaPlayerに追加 (Android Only)
    変更理由: ユーザーがBackgroundの状態にしている時間を計算するための機能を追加
    影響範囲: 新規APIなので利用しない場合、影響なし
    アプリの変更有無: No

    Code Block
    /**
     * LMSデータを送信する際、アプリの状態がbackgroundまたはforegroundになった時の時間も一緒に送るために
     * アプリの状況が変更される時点を保存する関数
     * LMS Callback設定に{APP_STATUS_JSON}を追加した場合に有効になります。
     * @param status アプリの状況
     */
    public void setAppStatus(@APP_STATUS int status); // 1 : background, 2: foreground

Fixed

  • Seek中に終了したとき、NullPointerException対応(Play Consoleのvitals対応)
    変更理由: SDK 3.0.0から発生したBug Fix
    影響範囲: SDK 3.0.0をご利用中でしたら影響あり、3.0.1への適用必須
    アプリの変更有無: No

3.0.0 (2024.08.29)

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を設定する必要があります。

  • ProGuard修正

    • exoplayer2項目削除

    • 下記の項目を追加

      Code Block
      -dontwarn androidx.media3.**
      -keep interface androidx.media3.** { *; }
  • MultiDRMのライブラリ変更

    • 以前バージョンからDLしたMultiDRMコンテンツは対応しておりません。DLリストからは表示されますが、再生はできません。(Kollus DRMは関係ありません)

    • minSDKを21になります。

    • PallyconWVMSDK.aarをSubProjectとして追加もしくはlibsフォルダーに追加が必要です。

    • build.gradle修正

      • MultiDRMのライブラリーはKotlinになりましたので下記のKotlin設定が必要です。

        Code Block
        //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修正

      Code Block
      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 (2024.07.16)

  1. AI倍速スクリプトパスエラーに対する防御コード追加

2.0.22 (2024.07.11)

  1. ネットワークの状況により、再生開始中にExoPlayerでエラーが発生した場合にANR現象を修正

  2. 1007エラー発生する状況のエラーコード分離
    -1018 : KollusStorage因子エラーまたは再生パスエラー時
    -1019 : Kollus Storage 初期化されていない場合

  3. SocketTimeoutException発生時 -1010から -8028に変更

2.0.21 (2024.06.14)

  1. Google未認証端末にPallyconライブラリの初期化失敗を修正
    端末名で初期化skip

2.0.20 (2024.05.20)

  1. AI倍速コンテンツ情報をN-screenに追加

  2. Kollus User AgentにChrome OSを追加

2.0.19 (2024.03.28)

  1. 次の動画再生追加

    Code Block
    KollusContentに下記のAPIを追加
            /**
         * 次の動画再生 Callback URL 獲得する関数
         * @return 次の動画再生 Callback URL
         */
        public String getNextEpisodeCallbackUrl();
    
        /**
         * 次の動画再生 Callback URL 呼び出し時 post データを取得する関数
         * @return 次の動画再生 Callback URL 呼び出し時 post データ
         */
        public String getNextEpisodeCallbackData();
    
        /**
         * 次の動画再生がある時にUIボタンを表示する時間を取得する関数
         * @return 次の動画再生 Callback URL見える時間
         */
        public Stringint getNextEpisodeCallbackUrlgetNextEpisodeShowTime();
  2. KollusContent API整理

    Code Block
          /**
         * 次の動画再生Parcelで再生コンテンツ情報を設定する関数
    Callback URL 呼び出し時 post データを取得する関数  * SDK内部で使用
      * @return 次の動画再生 Callback* URL@param 呼び出し時in postコンテンツ情報を盛り込んだ データParcel
         */
        public Stringvoid getNextEpisodeCallbackDatasetForPlay(Parcel in);
    
        /**
         * 次の動画再生がある時にUIボタンを表示する時間を取得する関数Parcelでダウンロードコンテンツ情報を設定する関数
         * SDK内部で使用
         * @param in @returnコンテンツ情報を盛り込んだ 見える時間Parcel
         */
        public intvoid getNextEpisodeShowTimesetForDownload(Parcel in);

    KollusContent API整理

    Code Block
    
    
    
        /**
         * Parcelで再生コンテンツ情報を設定する関数Json Stringでコンテンツ情報を設定する関数
         * SDK内部で使用
         * @param injsonString コンテンツ情報を盛り込んだ ParcelJson String
         */
        public void setForPlaysetByJson(ParcelString injsonString);
    
        /**
         * Parcelでダウンロードコンテンツ情報を設定する関数
         * SDK内部で使用与えられた因子にコンテンツ情報をコピーする関数
         * @param incontent コンテンツ情報を盛り込んだコンテンツ情報をコピーする対象 ParcelKollusContent
         */
        public void setForDownloadcopy(ParcelKollusContent incontent);
    
        下記の関数を除いたset関数を削除
    /**    public void *setMediaContentKey(String Json Stringでコンテンツ情報を設定する関数key);
        public * SDK内部で使用
         * @param jsonString コンテンツ情報を盛り込んだ Json String
         */void setContentT+D1ype(ContentType type);
         public void setByJsonsetUriIndex(Stringint jsonStringindex);
        public /**
    void setPlaytime(int  playtime);
      * 与えられた因子にコンテンツ情報をコピーする関数 public void setReceivedSize(long receiveSize);
     * @param content コンテンツ情報をコピーする対象public KollusContentvoid   setReceivingSize(long receiveSize);
      */     public void copysetFileSize(KollusContentlong contentfileSize);
         下記の関数を除いたset関数を削除public void setLocalMediaUrl(String mediaUrl);
        public void setMediaContentKeysetDownloadPercent(Stringint  keypercent);
        public void setContentT+D1ypesetDownloadCompleted(ContentTypeboolean typecomplete); 
        public void setUriIndexsetDownloadError(intboolean indexbError);
        public void setPlaytimesetLoaded(intboolean  playtimebLoaded);
        public void setReceivedSizesetContentExpired (longboolean receiveSizeexpired);
        public void setReceivingSizesetDownloading(longboolean receiveSizedownloading);
        public void setFileSizesetDownloadCanceled(long fileSize);
        public void setLocalMediaUrl(String mediaUrl);
        public void setDownloadPercent(int percent);
        public void setDownloadCompleted(boolean complete); 
        setServiceProviderMessage(String message);
  3. 4.2以下の断末から倍速をする時、安定性を改善

2.0.18 (2024.03.04)

  1. AwesomePlayerでseek中にLMSデータが出る場合、LMSデータのPlaytimeエラーを修正

  2. 字幕がない区間でseek時以前の時間の字幕が少し出て消える現象を修正

  3. AI倍速チューニング

  4. LMSコールバックURLが複数ある場合、エラー発生時(4xx、5xx)以降のオフラインLMSデータが上がらない現象を修正

2.0.17 (2024.02.07)

  1. MediaInfoを取得中の間、再生終了する時にIndexOutOfBoundsExceptionの問題を修正

  2. StorageManager load中の間、再生終了する時にANR発生現象を修正

  3. LMSデータにai_playtimeを追加

2.0.16 (2024.01.23)

  1. AI倍速追加

    Code Block
    MediaPlayerに下記のAPI追加
    /**
    AI倍速可否を設定する関数
    @param enable true : AI 倍速, false : 基本倍速
    */
    public void setDownloadErrorsetAiPlaybackRateEnable(boolean bErrorenable);
    /**
    AI 可否を知らせるする関数
    @return publictrue void: setLoaded(boolean bLoaded);
       AI 倍速, false : 基本倍速
    */
    public voidboolean setContentExpired isAiPlaybackRateEnabled(boolean expired);
    KollusContentに以下のAPI追加
    /**
    AI SCriptアドレスを設定する関数としてSDK public内で使用します。
    void@param setDownloading(boolean downloading);
       scriptPath AI SCriptアドレス
    */
    public void setDownloadCanceledsetAiScriptPath(String scriptPath);
    /**
    AI SCriptアドレスを取得する関数で、パスが空の文字でなければAIの倍速が可能なコンテンツです。
    */
    public voidString setServiceProviderMessagegetAiScriptPath(String message);
  2. 4.2以下の断末から倍速をする時、安定性を改善

2.0.18 (2024.03.04)

  1. AwesomePlayerでseek中にLMSデータが出る場合、LMSデータのPlaytimeエラーを修正

  2. 字幕がない区間でseek時以前の時間の字幕が少し出て消える現象を修正

  3. AI倍速チューニング

  4. LMSコールバックURLが複数ある場合、エラー発生時(4xx、5xx)以降のオフラインLMSデータが上がらない現象を修正

2.0.17 (2024.02.07)

  1. MediaInfoを取得中の間、再生終了する時にIndexOutOfBoundsExceptionの問題を修正

  2. StorageManager load中の間、再生終了する時にANR発生現象を修正

  3. LMSデータにai_playtimeを追加

2.0.16 (2024.01.23)
  1. MultiDRMコンテンツのサムネイル、スナップショットイメージエラーを修正

  2. 区間再生パラメータ追加
    KollusContentに下記のAPIを追加

    Code Block
    /**
    * 区間再生の開始時間を設定する関数
    * @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)

  1. 断続的に発生したメディア パーシング エラー(-8633)を修正

  2. エラー レポート時のエンコーディング プロファイルのキー追加

  3. prepared前に終了時、LMSのruntimeデータの収集エラー修正

  4. ブックマークタイトルにurlencodeを追加

2.0.14 (2023.08.10)

  1. Edge接続時にHttp Request Headerを追加

2.0.13 (2023.08.09)

  1. HLS、Mpeg-Dashの場合、エラーログの収集ができないエラーを修正

  2. エラーログ収集時パラメータの欠落している現象を修正

  3. Download DRM v2支援

2.0.12 (2023.07.18)

  1. 初期バッファリング収集データの追加

  2. onPrepared以降、最初の再生するタイミングから字幕を表示修正

2.0.11 (2023.06.09)

  1. Virtual Master検知パッチされたライブラリの適用

  2. ライブ再生の試み時にエラーが発生した場合、エラーレポートが抜ける現象を修正

  3. 最初のエッジ接続時、UserAgentにcpkが抜ける現象を修正

  4. フォレンジックウォーターの開始エラー時にonPreparedがNotifyされて再生される現象を修正

  5. on Prepared以降、初再生の試み時に字幕が上がるように修正

  6. Emulator Checker Listenerに下記APIを追加
    /**
    * 再生中にデバッグモードがオンになっている場合に呼び出されます。
    */
    public void onDetectDebuggingMode();

2.0.10 (2023.03.14)

  1. FD_SETSIZE 1024制限でソケットが1024より大きい場合、FD_SETからCrashされ、selectからpollに変更

  2. ストレージマネージャーでエラーが発生した場合、stパラメータが漏れる現象を修正

  3. Terutenモジュールアップデート

  4. Terutenモジュール初期化失敗時エラーレポート漏れ現象修正

  5. エミュレータ検出時にエラーレポートを追加

  6. TimeShiftを最大にseek時、間欠的に-3012エラーが出る現象を修正

2.0.9 (2022.09.29)

  1. 再生終了時にANR現像を修正

  2. 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)

  1. マルチ字幕対応
    KolluesContent API 追加
      public Vector<SubtitleInfo> getSubtitleSubInfo();
    MediaPlayer API 変更
     変更前   

Code Block
public void addTimedTextSource(Context context, Uri uri);
public void addTimedTextSource(String path);
public void selectTrack(int index);
public void deselectTrack(int index);

  変更後

Code Block
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パラメータ変更
変更前

Code Block
MediaPlayer.OnExternalDisplayDetectListenerの
		public void onExternalDisplayDetect(int type, boolean plugged);

KollusContentの
		public int getContentType();

変更後

Code Block
MediaPlayer.OnExternalDisplayDetectListenerの
		public void onExternalDisplayDetect(EXTERNAL_DISPLAY_MODE type, boolean plugged);

KollusContentの
		public KollusContent.ContentType getContentType();

2.0.7 (2022.07.01)

  1. FireTV App専用のSDK提供

    • 64ビットに対応

  2. ダウンロードリンクにdownloadパラメータをSDK内に追加

    • アプリにあったものをSDK段に移す(顧客から漏れてネットワークthrottlingにかかり遅い現象を防止)

  3. アプリ脆弱性警告及びエミュレータ感知できない問題でTerutenエミュレータチェックライブラリー除去

    • Android11以上では権限問題で最初からチェック不可能

  4. 以下のCPUアーキテクチャの除去

    • armeabi, mips, mips64

2.0.6 (2022.02.08)

  1. TimeShiftする際のcurrent positionとdurationエラーを修正

  2. 進捗率にVolume, Playrate関連スペックを追加

  3. prepareAsync 重複リクエストによりバッファリング時間がマイナスにリターンされる問題を修正

  4. releaseバージョンでProguardを適用した際にCrashする問題を修正

  5. lmsに置換子 {PLAY_BLOCK_JSON}を使用する際のデータエラーを修正

2.0.5 (2021.11.22)

  1. バグ修正: ExoPlayer seekする際のcomplete notifyする時点を変更

    • 一般的にシーク動作がリクエストされると、Playerは最も近いキーフレームに移動します。

      • 例)動画の10秒時点にキーフレームがあって、11秒時点をシークするようにリクエストされた場合、シーク動作後の実際の場所は10秒になります。
        ※全てのVideo Playerはこの方式で動作します。

    • バグ修正前

      • 例)11秒時点にシークをリクエストされた場合に10秒時点にキーフレームがあると上記動作のようにPlayerは10秒に移動するが、シーク動作に対するリターン値は11秒になる。
        実際再生には影響がなくても、LMS Callbackなどに影響する可能性あり。

    • バグ修正後

      • シーク動作のリターン値が、実際シーク関数が完了された時点(10秒)と一致する。

  2. スペック変更: setBandwidth動作変更

    • 変更前

      • "setBandwidth"関数をリクエストしても、exoPlayerはバッファされたストリームサイズが25秒未満にならない限り、ビットレートを変更しない。

    • 変更後

      • "setBandwidth"関数をリクエストすると、exoPlayerはバッファされたストリームサイズを無視し、関数がリクエストされた直後にビットレートを変更する。

  3. 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)

  1. 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);

  2. MediaPlayerから以下のAPIを削除
    public void setBufferDurationsMs(int minBufferMs, int maxBufferMs);
    理由: 設定されたサイズだけ必ずバッファリングするため、円滑なABR動作を妨害する

  3. Multi DRM コンテンツのストリーミング再生終了後、キャッシュフォルダを削除

2.0.3 (2021.10.21)

  1. サムネイルダウンロード完了及びABRの画質が変更する際のデバッグログを追加
    →バッファリングに時間が掛かる区間を確認するサムネイルダウンロードログを追加
    →初期画質変更の際の遅延を確認するためのログを追加

  2. ログサーバーとの通信をリクエストされたプロトコルに合わせて動作するように修正
    →httpsでリクエストした際に、SDK内部で行われるhttp通信はlocal proxyを除いて全て削除

  3. Multi DRMサムネイルダウンロード方式を、非同期方式で動作できるオプションを追加
    →サムネイルダウンロードに掛かる時間がバッファリングに影響を与えるため、この動作方式を同期→非同期に変更
    →関連インターフェース

    Code Block
    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に指定します。

  4. small thumbnailに対応
    サムネイルサイズは、254*108, 50*50の2つとなり、オプション処理でsmallサイズでダウンロードすることが可能
    関連オプションは
    https://support.catenoid.net/display/SUPJP/JWT
    上記の内容の中、thumbnailのtypeをsmallに指定します。

2.0.2 (2021.10.17)

  1. 再生開始後、終了する際に落ちる問題を修正
    →ネットワークに接続をトライする際に終了されるとANRが発生する可能性あり
    SDK内部でcurlを使用しているため、ネットワークに接続をトライする際には止める手段がないため弱電界でのANRは回避が不可能

  2. DASH, HLSの場合、UserAgentが間違って取得される問題を修正
    →ログ取得プロセスに問題があったため、顧客サービスには関係ない内容

  3. 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)

  1. load途中で再生終了する時にANRを防止(for ExoPlayer)

  2. intro映像、またはseekableがfalseの場合ブックマークを取得しないように修正(for ExoPlayer)

  3. 再生中エラーの時にエラーレポートが抜ける問題を修正 (for ExoPlayer)

  4. ABR 画質を選択する際に画質を固定しないで、該当画質までABRするように変更 (for ExoPlayer)

  5. ABR Playlistの最初項目を再生するように修正 (for ExoPlayer)

  6. 画質選択APIを以下のように変更
    - 変更前
    public void setBandwidth(String bandWidthName);
    - 変更後
    public void setBandwidth(int bandWidth);
    public void setBandwidthName(String bandWidthName);

  7. Utilsクラスの以下のAPIを変更
    - isTablet アクセサ privateに変更
    - public static @DEVICE_TYPE int getDeviceType(Context context)を追加

2.0.0 (2021.08.31)

  1. forensic watermark追加

  2. KollusContentにて以下のAPIを変更

    • public void setHasWaterMark(boolean hasWaterMark) --> public void setAudioWaterMark(String waterMark)

    • public boolean getHasWaterMark() --> public boolean hasAudioWaterMark()

  3. KollusContentにて以下のAPIを追加

    • public String getAudioWaterMark()

    • public void setForensicWaterMark(String waterMark)

    • public String getForensicWaterMark()

    • public boolean hasForensicWaterMark()

  4. ライブストリーミング(HLS, Mpeg-Dash)がエラーになった際、リトライと終了、衝突防止

  5. 保存場所を読み込む際にNullPointerExceptionを防止

  6. 終了する際に、フリーズする現象を防止(弱電界にて発生する可能性)

  7. ExoPlayer 更新(2.10.3 -> 2.13.2)
    MultiDRM ライブラリ開発環境が2.13.2
    build.gradleにて以下の内容を追加

    Code Block
    defaultConfig {
    	...
    	multiDexEnabled true
    }
    
    dependencies {
    	...
    	implementation 'androidx.multidex:multidex:2.0.1'
    	implementation 'com.google.guava:guava:27.1-android'
    }

  8. Multi DRM 2.1.3ライブラリを適用

    • AndroidManifestにてorg.apache.http.legacyの使用を除去

2021.06.14

  1. コンテンツ DurationがLMSのブロック数より大きい場合の防御コードを追加

  2. MP4ボックスエラーの防御コードを追加 (ExoPlayer)

  3. MP4ボックスのコーデック情報と実際のコーデック情報が異なる場合の防御コードを追加 (AwesomePlayer)

  4. マルチダウンロード途中に同一なリストを再度リクエストした際に download completeになる不具合を修正

  5. KollusContentにて以下のオーディオファイル確認関連APIを追加

    /**
    * SDK 内部で使用
    * @param bAudioFile AudioFile
    */
    public void setAudioFile(boolean bAudioFile);

    /**
    * オーディオコンテンツかどうかを取得する関数
    * @return オーディオファイル可否
    */
    public boolean isAudioFile() ;

  6. テルテンエミュレータチェックライブラリを適用

    • 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を追加

  7. 再生開始後すぐにクラッシュする不具合を修正

    • prepare 途中に ExoPlayerが生成されずdestroyDisplayした際にNullPointerExceptionが発生

  8. 弱電系状態での -8403エラーを修正

    • ExoPlayerの timeout(8秒)によってリトライするとproxy側では既にclientが存在することに判断されたため発生

    • 500ms sleep 後、connectionがない場合には正常処理

2021.02.05

  1. 再生開始直後に終了する現象を修正

    1. * 終了の際にURLをnull処理する際に、prepareのURL値がnullだったため発生。Lockerを追加

  2. NDK Codecで発生するCashの疑いがある要素を修正

  3. ExoPlayerでTrackInfoの取得ができるように修正

  4. Proxy Server セキュリティ強化

  5. 外部メモリにダウンロードしている途中に分離される場合、-8623で処理される現象を修正

  6. チャット関連事項を追加

    • 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

  1. intro動画で正確なSeekを繰り返した際に落ちる問題修正

----------------------------------------------------------------------------------------

2020.11.30

  1. User Agent 規則変更 (pc, mobile, tablet 区別)

  2. KollusContentに最大倍速関連APIを追加

/**

  • SDK 内部で使用

  • @param rate

*/
public void setMaxPlaybackRate(int rate);

/**

  • 最大倍速を取得する関数

  • @return

*/
public int getMaxPlaybackRate();
----------------------------------------------------------------------------------------

2020.11.12

  1. KollusStorageに以下のAPIを追加

  • public void sendStoredLMS(StoredLMSListener listener);

  1. KollusStorageのリスナー関連、API変更及び追加

  2. OnKollusStorageListener 関連事項

  • setOnKollusStorageListener -> registerKollusStorageListener に変更

  • unregisterKollusStorageListener 追加

  1. KollusPlayerDRMListener 関連事項

  • setKollusPlayerDRMListener -> registerKollusPlayerDRMListener に変更

  • unregisterKollusPlayerDRMListener 追加

  1. KollusPlayerLMSListener 関連事項

  • setKollusPlayerLMSListener -> registerKollusPlayerLMSListener に変更

  • unregisterKollusPlayerLMSListener 追加

  1. KollusPlayerThumbnailListener 関連事項

  • setKollusPlayerThumbnailListener -> registerKollusPlayerThumbnailListener に変更

  • unregisterKollusPlayerThumbnailListener 追加

  1. KollusPlayerCallbackListener 関連事項

  • setKollusPlayerCallbackListener -> registerKollusPlayerCallbackListener に変更

  • unregisterKollusPlayerCallbackListener 追加

/**

  • 保存されたLMSデータをPlayerではなく別途APIで取得する際に、

  • 結果がリターンされるリスナー

*/
public interface StoredLMSListener {
/**

  • 保存されたLMSデータを全て転送してから取得する関数

  • @param successCount 転送成功件数

  • @param failCount 転送失敗件数

*/
void onSendComplete(int successCount, int failCount);
}

  1. ライブ再生中、重複再生遮断に必要な情報が抜けていた問題を修正

----------------------------------------------------------------------------------------

2020.11.02

  1. Current Position エラー修正

  2. Rollypop以前の場合、Pallycon Agentを生成しない

----------------------------------------------------------------------------------------

2020.10.19

  1. 再生初期バッファリング時間reportingを間違ったURLに送る問題を修正

  2. 再生初期バッファリング時間reportingをASyncするように変更

  3. ダウンロードするためにコンテンツがLoadされたかを確認するAPIを追加

  • KollusContentに以下のAPIを追加

  • public void setLoaded(boolean bLoaded);//内部のみ使用

  • public boolean isLoaded();

  1. prepare 完了される前に再生終了した際に落ちる問題を修正 (マーケットの一部NullPointExceptionと関連)

  • prepare直後に終了した際に、uriがnullのため落ちる

  • prepare後、onPrepared リクエストする時点に終了した場合、コンテンツ情報がnullのため落ちる

  1. ライブPlaycallback resultが 0の場合、エラーメッセージがないと間違ったエラーコードが上がる問題を修正

  2. 内部で管理するダウンロードリストに存在しないmckでdowload apiをリクエストした際に落ちる問題を修正

  • ダウンロードするためにloadし、削除してからdowload apiをリクエストすると判断

  1. ブックマークタイトルが抜ける問題を修正(for ExoPlayer)

----------------------------------------------------------------------------------------

2020.08.10

  1. 2020.06.08_r1 Base

  2. ネットワークが断絶されていてもタイムアウトが適用されるように修正

  3. introで、Audio watermarking映像を再生し、次にAudio watermarkingが適用されてない映像を再生した際に落ちる問題を修正

  4. ExoPlayer リピート再生するときにバッファリング表示になる問題を修正

  • リピート再生の時に、暫くバッファリング状態になる可能性があるため、リピート再生中にはバッファリング表示をしないように修正することを推奨します。

  1. disable_nscreenが trueのダウンロードコンテンツにnscreen情報が出る問題を修正

  2. オフラインブックマークタイトルが抜ける問題を修正

  3. Multi DRM ダウンロード機能を追加

  • KollusContentにpublic @ContentType int getContentType(); 追加

  • KOLLUS_CONTENT, EXT_DRM_CONTENT

  • ダウンロード中にはファイルサイズ情報が正確に取得できない可能性があります。

  1. User Agent 規則変更

  2. ライブLMSデータのエラーを修正

10. ライブにVideo watermark表示されない問題を修正
----------------------------------------------------------------------------------------

2020.08.03

  1. オフラインブックマークタイトルが抜ける問題を修正

  2. オフラインブックマークの追加を連打すると落ちる問題を修正

----------------------------------------------------------------------------------------

2020.07.21

  1. 2020.03.20_r1にロールバック

  2. VMチェック不具合エラーが報告されない時点(2019.04.09_r1)に適用

  3. OnInfoListenerに以下の関数を追加

  • void onCodecInitFail(String componentName);

  1. disable_nscreenがtrueのダウンロードコンテンツにnscreen情報が出る問題を修正

----------------------------------------------------------------------------------------

2020.06.08

  1. OnInfoListenerに以下の関数を追加

  • void onCodecInitFail(String componentName);

  1. No Kollus VOD 字幕対応

  2. No Kollus VOD Playcallback対応

  3. No Kollus VOD ネットワークタイム適用

  4. VMチェックするに変更

  5. 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)に変更

  1. HLS 終了した際に落ちる問題を修正

----------------------------------------------------------------------------------------

2020.04.22

  1. 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 の設定が必要

  1. OnInfoListenerに以下の関数を追加

  • void onDetectBandwidthList(MediaPlayer mp, List<BandwidthItem> list);

  • void onChangedBandwidth(MediaPlayer mp, BandwidthItem item);

  1. MediaPlayerに以下の関数を追加

  • public void setBandwidth(String bandwidthName);

  1. introがある映像で、本映像にPlayCallbackでエラーが発生した際にhangになる問題を修正

  2. MediaPlayerのsetCencProxyPath関数を除去 (MediaInfoを使用)

----------------------------------------------------------------------------------------

2020.03.20

  1. Audio watermarkingが適用されている場合、全体リピート再生した際に画面更新されない問題を修正

----------------------------------------------------------------------------------------

2020.02.18

  1. Seekする際に次の区間まで字幕が表示されない問題を修正

  2. onPrepared以降に字幕が出るように修正

----------------------------------------------------------------------------------------

2020.01.18

  1. ToolChain 及びビルドスクリプトを変更

  2. CpuInfoにisSupportDevice関数を追加

  3. 外部からPlayer IDを設定する場合、重複再生遮断ができない問題を修正

  4. OMXCodecにて、連続でSeekするとき落ちる問題を修正

  5. Seekする際に次の区間まで字幕が表示されない問題を修正

  6. onPrepared以降に字幕が出るように修正

----------------------------------------------------------------------------------------

2019.12.10

  1. LMS データに置換子 TIMEMAP_DATA 追加

  2. エミュレータチェックロジックを変更

----------------------------------------------------------------------------------------

2019.11.13

  1. SW コーデックにて、まれに落ちる問題を修正

  2. 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);

  1. ブックマーク追加した際にラベルも取得できるように修正

MediaPlayer
既存 : public void updateKollusBookmark(int position);
修正 : public void updateKollusBookmark(int position, String label);

  1. Mpeg Dash ABR 追加

Table of Contents
maxLevel3