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

    Android用ネイティブSDKを使用したオフライン再生用の複数のオーディオトラック

    このトピックでは、Brightcove Native Player SDK for Androidを使用してオフライン再生を操作するときに、複数のオーディオトラックとテキストトラックを返す方法を学習します。

    複数のトラックを管理する

    デフォルトでは、キャプションファイルはなく、オーディオトラックは 1 つのみダウンロードされます。動画に関連付けられた追加のアセットをダウンロードするには、次の手順に従います。

    1. ビデオクラウドの OfflineCatalog クライアントへの参照を取得します。

      private OfflineCatalog catalog;
      ...
      catalog = new OfflineCatalog(this, eventEmitter, ACCOUNT_ID, POLICY_KEY);
      ...
    2. GetMediaFormattrackSavailable メソッドを呼び出し、情報を取得する Video オブジェクトを渡し、返されたデータをリッスンする MediaFormatListener メソッドを呼び出します。

      OfflineCatalog.getMediaFormatTracksAvailable(
        @NonNull final Video video,
        @NonNull final MediaDownloadable.MediaFormatListener mediaFormatListener)
    3. は、MediaFormatListener次のメソッドを呼び出します。

      void onResult(MediaDownloadable mediaDownloadable, Bundle mediaFormatBundle);

      MediaDownloadable オブジェクトには、ビデオレンディション、オーディオ言語、キャプションなどの情報が含まれます。mediaDownloadableオブジェクトはキャッシュされ、 OfflineCatalog.DownloadVideo (ビデオ) を呼び出すときに使用されます。

      バンドルオブジェクトには、利用可能な Media Format トラックに関する情報が含まれ、次のプロパティがあります。

    4. バンドルからデータのリストを取得します。異なるリストを取得するための例を次に示します。

      ArrayList<MediaFormat> video = bundle.getParcelableArrayList(MediaDownloadable.VIDEO_RENDITIONS);
      
      ArrayList<MediaFormat> audio = bundle.getParcelableArrayList(MediaDownloadable.AUDIO_LANGUAGES);
      
      ArrayList<String> roles = bundle.getStringArrayList(MediaDownloadable.AUDIO_LANGUAGE_ROLES);
      
      ArrayList<MediaFormat> captions = bundle.getParcelableArrayList(MediaDownloadable.CAPTIONS);
    5. 新しいBundlefilteredBundle)を作成して、ダウンロードに含めるオーディオトラックとクローズドキャプションを選択します。

      Bundle filteredBundle = new Bundle();
    6. 以前に作成したリストから目的のトラックをフィルタリングし、新しいトラックに追加しますfilteredBundle

      ArrayList<MediaFormat> captions = bundle.getParcelableArrayList(MediaDownloadable.CAPTIONS);
      if (captions != null && captions.size() > 0) {
         ArrayList<MediaFormat> newCaptions = new ArrayList<>();
         newCaptions.add(captions.get(0));
      
      filteredBundle.putParcelableArrayList(MediaDownloadable.CAPTIONS, newCaptions);
      }
    7. をセットするfilteredBundleMediaDownloadableオブジェクト。

      mediaDownloadable.setConfigurationBundle(filteredBundle);
    8. ビデオをダウンロードしてください。

      offlineCatalog.downloadVideo(video);

      内部的には、OfflineCatalogキャッシュされたものを使用しますMediaDownloadableによって提供されるMediaDownloadable.MediaFormatListener折り返し電話。

    コードサンプル

    追加のオーディオトラックとキャプションファイルをダウンロードする完全な例については、オフライン再生サンプルアプリを参照してください


    ページの最終更新日04 Oct 2021