提交 ae8d7028 编写于 作者: S shuyu

fix 2279

上级 bebffc91
......@@ -44,13 +44,14 @@ public class DetailExoListPlayer extends GSYBaseActivityDetail<GSYExo2PlayerView
initVideo();
List<GSYVideoModel> urls = new ArrayList<>();
urls.add(new GSYVideoModel("http://7xjmzj.com1.z0.glb.clouddn.com/20171026175005_JObCxCE2.mp4", "标题1"));
urls.add(new GSYVideoModel("https://a1.test.eceibs.com.cn/index.php/mobile/file/media?hash=video%2Flesson%2Fceibs%2F744a6931501642f3a41998624e280137.mp4&sso_token=3789824fe1386eabf866610e50265ef1&user_id=10547&company_id=145&sys_id=0&client_version=1.5.2&resolution=sd", "标题1"));
urls.add(new GSYVideoModel("https://media6.smartstudy.com/ae/07/3997/2/dest.m3u8", "标题3"));
urls.add(new GSYVideoModel("http://9890.vod.myqcloud.com/9890_4e292f9a3dd011e6b4078980237cc3d3.f20.mp4", "标题2"));
detailPlayer.setUp(urls, 0);
//使用 exo 的 CacheDataSourceFactory 实现
detailPlayer.setExoCache(true);
detailPlayer.setExoCache(false);
detailPlayer.setOverrideExtension("m3u8");
//增加封面
ImageView imageView = new ImageView(this);
......
......@@ -70,7 +70,7 @@ public class GSYExo2MediaPlayer extends IjkExo2MediaPlayer {
}
ConcatenatingMediaSource concatenatedSource = new ConcatenatingMediaSource();
for (String uri : uris) {
MediaSource mediaSource = mExoHelper.getMediaSource(uri, isPreview, cache, false, mCacheDir, null);
MediaSource mediaSource = mExoHelper.getMediaSource(uri, isPreview, cache, false, mCacheDir, getOverrideExtension());
concatenatedSource.addMediaSource(mediaSource);
}
mMediaSource = concatenatedSource;
......
......@@ -180,7 +180,7 @@ public class GSYExo2PlayerView extends StandardGSYVideoPlayer {
Debuger.printfError("********************** urls isEmpty . Do you know why ? **********************");
}
((GSYExoVideoManager) getGSYVideoManager()).prepare(urls, (mMapHeadData == null) ? new HashMap<String, String>() : mMapHeadData, mLooping, mSpeed, mExoCache, mCachePath);
((GSYExoVideoManager) getGSYVideoManager()).prepare(urls, (mMapHeadData == null) ? new HashMap<String, String>() : mMapHeadData, mLooping, mSpeed, mExoCache, mCachePath, mOverrideExtension);
setStateAndUi(CURRENT_STATE_PREPAREING);
}
......
......@@ -16,8 +16,8 @@ public class GSYExoModel extends GSYModel {
List<String> urls = new ArrayList<>();
public GSYExoModel(List<String> urls, Map<String, String> mapHeadData, boolean loop, float speed, boolean cache, File cachePath) {
super("", mapHeadData, loop, speed, cache, cachePath, "");
public GSYExoModel(List<String> urls, Map<String, String> mapHeadData, boolean loop, float speed, boolean cache, File cachePath, String overrideExtension) {
super("", mapHeadData, loop, speed, cache, cachePath, overrideExtension);
this.urls = urls;
}
......
......@@ -9,6 +9,7 @@ import com.google.android.exoplayer2.video.DummySurface;
import com.shuyu.gsyvideoplayer.cache.ICacheManager;
import com.shuyu.gsyvideoplayer.model.VideoOptionModel;
import com.shuyu.gsyvideoplayer.player.BasePlayerManager;
import com.shuyu.gsyvideoplayer.utils.Debuger;
import java.util.List;
......@@ -40,6 +41,8 @@ public class GSYExoPlayerManager extends BasePlayerManager {
}
try {
mediaPlayer.setLooping(((GSYExoModel) msg.obj).isLooping());
Debuger.printfError("###### " + ((GSYExoModel) msg.obj).getOverrideExtension());
mediaPlayer.setOverrideExtension(((GSYExoModel) msg.obj).getOverrideExtension());
mediaPlayer.setDataSource(((GSYExoModel) msg.obj).getUrls(), ((GSYExoModel) msg.obj).getMapHeadData(), ((GSYExoModel) msg.obj).isCache());
//很遗憾,EXO2的setSpeed只能在播放前生效
if (((GSYExoModel) msg.obj).getSpeed() != 1 && ((GSYExoModel) msg.obj).getSpeed() > 0) {
......
......@@ -53,11 +53,11 @@ public class GSYExoVideoManager extends GSYVideoBaseManager {
return new GSYExoPlayerManager();
}
public void prepare(List<String> urls, Map<String, String> mapHeadData, boolean loop, float speed, boolean cache, File cachePath) {
public void prepare(List<String> urls, Map<String, String> mapHeadData, boolean loop, float speed, boolean cache, File cachePath, String overrideExtension) {
if (urls.size() == 0) return;
Message msg = new Message();
msg.what = HANDLER_PREPARE;
msg.obj = new GSYExoModel(urls, mapHeadData, loop, speed, cache, cachePath);
msg.obj = new GSYExoModel(urls, mapHeadData, loop, speed, cache, cachePath, overrideExtension);
sendMessage(msg);
if (needTimeOutOther) {
startTimeOutBuffer();
......
......@@ -36,7 +36,7 @@ dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
api project(':gsyVideoPlayer-java')
//api project(':gsyVideoPlayer-exo_player2')
api project(':gsyVideoPlayer-exo_player2')
//api project(':gsyVideoPlayer-armv5')
//api project(':gsyVideoPlayer-armv7a')
//api project(':gsyVideoPlayer-armv64')
......@@ -49,7 +49,7 @@ dependencies {
//api "com.shuyu:GSYVideoPlayer:$gsyVideoVersion"
//api "com.shuyu:gsyVideoPlayer-java:$gsyVideoVersion"
api "com.shuyu:GSYVideoPlayer-exo2:$gsyVideoVersion"
//api "com.shuyu:GSYVideoPlayer-exo2:$gsyVideoVersion"
api "com.shuyu:gsyVideoPlayer-armv5:$gsyVideoVersion"
api "com.shuyu:gsyVideoPlayer-armv7a:$gsyVideoVersion"
api "com.shuyu:gsyVideoPlayer-arm64:$gsyVideoVersion"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册