2017-09-26 115 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); 
相关问题