2017-09-26 17 views
0

3 개의 비디오 URL을 연결하여 Exoplayer ConcatenatingMediaSource과 연결하려고합니다.Exoplayer - 기본 URL 간의 ConcatenatingMediaSource

은 내가 노력하고 무엇 :

MediaSource mainSource = new ExtractorMediaSource(firstVideoUri, ...); 
MediaSource secondSource = new ExtractorMediaSource(secondVideoUri, ...); 
MediaSource thirdSource = new ExtractorMediaSource(thirdVideoUri, ...); 
// Plays the first video, then second & third video. 
ConcatenatingMediaSource concatenatedSource = 
    new ConcatenatingMediaSource(mainSource, secondSource, thirdSource); 

이 하나의 시퀀스 비디오 재생을 위해 작동합니다.

내 문제

내 mainSource 영화 (~ 2 시간)입니다

내 secondSource & thirdSource은 비디오 광고 (2 분) 내가 30 분 후에 첫 번째 비디오 광고를 재생해야

영화가 재생되었습니다. 60 분 동영상을 재생 한 후 두 번째 동영상 광고를 재생해야합니다. > 2 분 첫번째 광고 - -> 메인 동영상 (31-60 분) -> 2 분 두 번째 광고를

나는 순서

주요 영화 (30 첫째 분) 다음에 3 개 비디오를 재생할 필요 - > 주요 동영상 (61 말)

내 질문

어떻게 주요 URL 사이에이 동영상 URL을 재생/연결하는?

아무도 도와주세요.이 문제가있는 16 시간 이상의 두통.

답변

0

마지막으로 나는 공식 GitHub의에서 솔루션

https://github.com/google/ExoPlayer/issues/3299

솔루션은 문제있어 - ClippingMediaSource

샘플 구현

MediaSource movieMediaSource = MyExoPlayer.getMediaSourceFromUrl(StreamPlayerActivity.this, mLiveURL); 
    long oneMinute = 1000 * 1000 * 60 ; 
    ClippingMediaSource videoSource1 = new ClippingMediaSource(movieMediaSource, 0, oneMinute,false); 
    ClippingMediaSource videoSource2 = new ClippingMediaSource(movieMediaSource, oneMinute, 2 * oneMinute,false); 
    ClippingMediaSource videoSource3 = new ClippingMediaSource(movieMediaSource, 2 * oneMinute, 10 * oneMinute,false); 

    MediaSource adVideoSource1 = MyExoPlayer.getMediaSourceFromUrl(StreamPlayerActivity.this, mPromoVideoURL1); 
    MediaSource adVideoSource2 = MyExoPlayer.getMediaSourceFromUrl(StreamPlayerActivity.this, mPromoVideoURL2); 
    ConcatenatingMediaSource concatenatingMediaSource = new ConcatenatingMediaSource(videoSource1, adVideoSource1, videoSource2, adVideoSource2, videoSource3);