2017-10-02 10 views
1

ExoPlayer 2로 자막을 표시하고 싶습니다. 사용자는 언어 (영어, 독일어 또는 아랍어) 중에서 선택할 수 있습니다. 비디오 링크는 HLS (.m3u8)이며 자막은 .str 파일입니다.Exo Player 2에 여러 자막을 추가하는 방법

이 작업을 수행 할 샘플을 찾을 수 없습니다.

샘플이 있습니까?

+0

비디오 트랙 선택에 대한 답변이 있지만 동일한 논리가 자막 트랙 선택에 적용됩니다. 더 많은 정보가 필요하다면 여기에 더 깊이있는 대답을 쓸 수 있습니다. 그냥 알려주세요 :) https://stackoverflow.com/questions/45835562/quality-selector-for-exoplayer-2/45844705#45844705 –

+0

내 부제가 hls 파일에 있습니다. 자막 파일은 로컬 파일입니다. @KyleVenn –

답변

1

link 원본 게시물에 댓글로 추가 한 내용은 텍스트 트랙 선택을 중심으로 UI를 작성하는 방법입니다. 실제로 mp4 파일 (또는 형식이 무엇이든)에 트랙을 추가하려면 MergingMediaSource을 사용해야합니다. 간단한 버전은 다음과 같습니다.

MediaSource videoSource = new ExtractorMediaSource(videoUri, ...); 
MediaSource subtitleSource = new SingleSampleMediaSource(subtitleUri, ...); 
// Plays the video with the sideloaded subtitle. 
MergingMediaSource mergedSource = new MergingMediaSource(videoSource, subtitleSource); 

여러 개의 자막 트랙을 비디오 소스에 병합 할 수 있습니다. 다양한 파일 형식이 허용됩니다.

this blog post에서 특정 코드 샘플을 얻었습니다.하지만 ExoPlayer 설명서에도 같은 코드가 포함되어 있습니다. 이 코드 블록을 다른 대답 here에 링크 된 샘플 코드와 결합하면 자막을 얻을 수 있습니다.

저에게 알려 주시면 알려주세요.

+0

질문에 대답 해 주시면 고맙겠습니다. 감사 드리며 결과를 알려 드리겠습니다. –

+0

네, 제가 부인 소스에 여러 자막 소스를 추가 할 수 있다는 것을 알지 못했습니다. 감사합니다. –