サポート問い合わせ先| システムステータス
ページコンテンツ

    AndroidTVコントロールのカスタマイズ

    このトピックでは、AndroidTVの巻き戻しボタンと早送りボタンをカスタマイズする方法を学習します。

    はじめに

    テレビ用 Brightcove メディアコントローラーには、巻き戻しボタンと早送りボタンがあります。これらのボタンのいずれかをクリックすると、既定で 3 秒前後にシークします。

    いずれかのボタンを押したままにすると、シーク位置は 40 ミリ秒ごとにコンテンツの 3 秒の割合で更新されます。つまり、巻き戻しボタンまたは早送りボタンを 1 秒ごとに押すと 75 秒進みます。

    シークボタンの設定

    巻き戻しボタンと早送りボタンは、EventType.SEEK_CONTROLLER_CONFIGURATIONイベントを通じて設定できます。

    簡単にするために、これらのボタンのいずれかをシークボタンと呼びます。これは、次のプロパティが両方に適用されるためです。

    イベントプロパティ デフォルト値 説明
    Event.SEEK_DEFAULT 3000ミリ秒 シークボタンがシークするデフォルトのシーク値(ミリ秒単位)。
    Event.SEEK_RELATIVE_ENABLED false 有効にすると、シークの値は、EventType.VIDEO_DURATION_CHANGEDイベントによって設定されたビデオデュレーションに対する相対値になります。パーセンテージはによって設定されますEvent.SEEK_PERCENTAGE
    Event.SEEK_PERCENTAGE 1% デフォルトのシーク値を計算するために使用されるビデオデュレーションに対するパーセンテージ。
    Event.SEEK_ON_HOLD_WAIT_TIME 500ミリ秒 キーイベントが通常のプレスではなく、長押しと見なされるのを待つ時間(ミリ秒単位)。
    Event.SEEK_ON_HOLD_UPDATE_FREQ 40ミリ秒 Media EventType.SEEKBAR_DRAGGING_PROGRESS Controllerのシークバーを更新するためにイベントを送信するために使用される時間(ミリ秒単位)。

    イベントプロパティのカスタマイズ

    上記の表に示したイベントプロパティから追加のイベントプロパティが必要な場合があります。期待値を定義し、EventType.SEEK_CONTROLLER_CONFIGURATIONイベントを発生させることでこれを行うことができます。

    イベントにカスタムプロパティを追加するには、次の手順を実行します。

    1. カスタム値を定義します。

      private static final int DEFAULT_TV_SEEK_TIME = (int) TimeUnit.SECONDS.toMillis(3);
      private static final int DEFAULT_TV_ON_HOLD_WAIT_TIME = (int) TimeUnit.SECONDS.toMillis(1);
      private static final int DEFAULT_TV_SEEK_PERCENTAGE = 1;
      private static final int DEFAULT_TV_ON_HOLD_UPDATE_FREQUENCY_TIME = 500;
      
    2. プロパティマップを作成し、目的の値を追加し、EventType.SEEK_CONTROLLER_CONFIGURATIONイベントを発生させるメソッドを含めます。

      private void setupTelevisionMode() {
         Map<String, Object> properties = new HashMap<>();
         properties.put(Event.SEEK_DEFAULT, DEFAULT_TV_SEEK_TIME);
         properties.put(Event.SEEK_RELATIVE_ENABLED, true);
         properties.put(Event.SEEK_PERCENTAGE, DEFAULT_TV_SEEK_PERCENTAGE);
         properties.put(Event.SEEK_ON_HOLD_WAIT_TIME, DEFAULT_TV_ON_HOLD_WAIT_TIME);
         properties.put(Event.SEEK_ON_HOLD_UPDATE_FREQ, DEFAULT_TV_ON_HOLD_UPDATE_FREQUENCY_TIME);
      
         eventEmitter.emit(EventType.SEEK_CONTROLLER_CONFIGURATION, properties);
      }
    3. アプリがテレビモードになっているかどうかを確認して、シークコントローラーの設定を設定します。

      if (BrightcoveMediaController.checkTvMode(mBaseVideoView.getContext())) {
         setupTelevisionMode();
      }

    ページの最終更新日21 May 2021