여러 트랙 관리
기본적으로 캡션 파일이없고 오디오 트랙이 하나만 다운로드됩니다. 비디오와 관련된 추가 자산을 다운로드하려면 다음 단계를 따르십시오.
-
비디오 클라우드에 대한 참조 얻기 OfflineCatalog고객.
private OfflineCatalog catalog; ... catalog = new OfflineCatalog(this, eventEmitter, ACCOUNT_ID, POLICY_KEY); ...
-
을 부르다 getMediaFormatTracksAvailable메서드, 전달비디오정보를 얻고 자하는 객체 및 MediaFormatListener반환 된 데이터를 수신합니다.
OfflineCatalog.getMediaFormatTracksAvailable( @NonNull final Video video, @NonNull final MediaDownloadable.MediaFormatListener mediaFormatListener)
-
그만큼
MediaFormatListener
다음 메서드를 호출합니다.void onResult(MediaDownloadable mediaDownloadable, Bundle mediaFormatBundle);
그만큼 MediaDownloadable개체는 비디오 변환, 오디오 언어 및 캡션을 포함한 정보를 포함합니다. 그만큼
mediaDownloadable
개체가 캐시되고 호출 할 때 사용됩니다. OfflineCatalog.downloadVideo (비디오) .그만큼묶음개체에는 사용 가능한 미디어 형식 트랙에 대한 정보가 포함되며 다음과 같은 속성이 있습니다.
- MediaDownloadable.VIDEO_RENDITIONS -배열 목록을 포함합니다.
MediaFormat
사물 - MediaDownloadable.AUDIO_LANGUAGES -배열 목록을 포함합니다.
MediaFormat
사물. - MediaDownloadable.AUDIO_LANGUAGE_ROLES -문자열의 배열 목록을 포함합니다. 이 목록은 다음에 관한 추가 정보를 제공합니다.
MediaDownloadable.AUDIO_LANGUAGES
. 색인은 오디오 언어 목록과 일치합니다. 오디오 역할의 예는 기본 및 대안이 될 수 있습니다. - MediaDownloadable.CAPTIONS -배열 목록을 포함합니다.
MediaFormat
사물
- MediaDownloadable.VIDEO_RENDITIONS -배열 목록을 포함합니다.
-
번들에서 데이터 목록을 검색합니다. 다음은 다른 목록을 검색하는 예입니다.
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);
-
새로 만들기
Bundle
(filteredBundle
)을 클릭하여 다운로드에 포함 할 오디오 트랙과 자막을 선택합니다.Bundle filteredBundle = new Bundle();
-
이전에 만든 목록에서 원하는 트랙을 필터링하고 새 트랙에 추가합니다.
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); }
-
설정
filteredBundle
~로MediaDownloadable
목적.mediaDownloadable.setConfigurationBundle(filteredBundle);
-
비디오를 다운로드하십시오.
offlineCatalog.downloadVideo(video);
내부적으로
OfflineCatalog
캐시 된MediaDownloadable
제공MediaDownloadable.MediaFormatListener
콜백.
코드 샘플
추가 오디오 트랙 및 캡션 파일을 다운로드하는 전체 예제는오프라인 재생 샘플 앱 .