Android SDK 修正履歴

2.0.16 (2024.01.23)

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

  2. 区間再生パラメータ追加
    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)

  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 変更
     変更前   

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

変更後

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

    アプリ側では上記のように作業してサムネイルダウンロードが完了されるまでには表示されないように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にて以下の内容を追加

     

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

 

Copyright © CATENOID, lnc. All Rights Reserved.
E-mail. jp_sales@catenoid.net | Tel. 03-4405-8462