Mehrere Tracks verwalten
Standardmäßig werden keine Untertiteldateien und nur eine Audiospur heruntergeladen. Gehen Sie wie folgt vor, um zusätzliche mit dem Video verknüpfte Assets herunterzuladen:
- 
	Erhalten Sie einen Verweis auf die Video Cloud OfflineKatalog Klient. private OfflineCatalog catalog; ... catalog = new OfflineCatalog(this, eventEmitter, ACCOUNT_ID, POLICY_KEY); ...
- 
	Ruf die getMediaFormatTracksAvailable Methode, Übergabe in der Video Objekt, über das Sie Informationen erhalten möchten, und die MediaFormatListener auf die zurückgegebenen Daten zu hören. OfflineCatalog.getMediaFormatTracksAvailable( @NonNull final Video video, @NonNull final MediaDownloadable.MediaFormatListener mediaFormatListener)
- 
	Die MediaFormatListenerruft die folgende Methode auf:void onResult(MediaDownloadable mediaDownloadable, Bundle mediaFormatBundle);Die MedienHerunterladbar -Objekt enthält Informationen, einschließlich Videowiedergaben, Audiosprachen und Bildunterschriften. Die mediaDownloadableObjekt wird zwischengespeichert und verwendet, wenn Sie aufrufen OfflineCatalog.downloadVideo(Video).Die Bündeln -Objekt enthält Informationen zu den verfügbaren Medienformat-Tracks und hat die folgenden Eigenschaften: - MedienHerunterladbar.VIDEO_RENDITIONS - Enthält eine Array-Liste von MediaFormatObjekte
- MedienHerunterladbar.AUDIO_LANGUAGES - Enthält eine Array-Liste von MediaFormatObjekte.
- MedienHerunterladbar.AUDIO_LANGUAGE_ROLES - Enthält eine Array-Liste von Strings. Diese Liste enthält zusätzliche Informationen bezüglich der MediaDownloadable.AUDIO_LANGUAGES. Die Indizes stimmen mit der Liste der Audiosprachen überein. Beispiele für Audiorollen können Haupt- und Alternativrollen sein.
- MedienHerunterladbar.CAPTIONS - Enthält eine Array-Liste von MediaFormatObjekte
 
- MedienHerunterladbar.VIDEO_RENDITIONS - Enthält eine Array-Liste von 
- 
	Rufen Sie Datenlisten aus dem Bundle ab. Hier sind Beispiele zum Abrufen der verschiedenen Listen: 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);
- 
	Erstelle eine neue Bundle(filteredBundle), um die Audiotracks und Untertitel auszuwählen, die Sie in den Download einschließen möchten.Bundle filteredBundle = new Bundle();
- 
	Filtern Sie die gewünschten Tracks aus der Liste, die Sie zuvor erstellt haben, und fügen Sie sie der neuen hinzu 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); }
- 
	Stellen Sie die filteredBundlezumMediaDownloadableObjekt.mediaDownloadable.setConfigurationBundle(filteredBundle);
- 
	Laden Sie das Video herunter. offlineCatalog.downloadVideo(video);Intern ist die OfflineCatalogwird das zwischengespeicherte verwendenMediaDownloadablebereitgestellt von derMediaDownloadable.MediaFormatListenerzurückrufen.
Codebeispiel
Ein vollständiges Beispiel zum Herunterladen zusätzlicher Audiotracks und Untertiteldateien finden Sie im Beispiel-App für die Offline-Wiedergabe.
