2017-09-26 57 views
0

我想連接三個視頻網址和玩Exoplayer ConcatenatingMediaSourceExoplayer - ConcatenatingMediaSource之間的主要URL

我所試過:

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分鐘的電影播放後播放第二個視頻廣告。

我需要在以下序列

主電影(最初30分鐘)播放3個視頻 - > 2分鐘的第一個廣告 - >主電影(31-60分鐘) - > 2分鐘第二廣告 - >主電影(61-完)

我的問題

如何連接/播放主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);