提交 be6030c8 编写于 作者: G guoshuyu

exo 切换支持

上级 90461438
......@@ -80,6 +80,13 @@ public class DetailExoListPlayer extends GSYBaseActivityDetail<GSYExo2PlayerView
}
});
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
GSYExoVideoManager.instance().next();
}
});
}
/**
......
......@@ -755,4 +755,56 @@ public class GSYExo2MediaPlayer extends AbstractMediaPlayer implements Player.Ev
public void onDrmKeysRemoved(EventTime eventTime) {
}
/*************自定义***************/
private final Timeline.Window window = new Timeline.Window();
private static final long MAX_POSITION_FOR_SEEK_TO_PREVIOUS = 3000;
/**
* 上一集
*/
public void previous() {
if (mInternalPlayer == null) {
return;
}
Timeline timeline = mInternalPlayer.getCurrentTimeline();
if (timeline.isEmpty()) {
return;
}
int windowIndex = mInternalPlayer.getCurrentWindowIndex();
timeline.getWindow(windowIndex, window);
int previousWindowIndex = mInternalPlayer.getPreviousWindowIndex();
if (previousWindowIndex != C.INDEX_UNSET
&& (mInternalPlayer.getCurrentPosition() <= MAX_POSITION_FOR_SEEK_TO_PREVIOUS
|| (window.isDynamic && !window.isSeekable))) {
mInternalPlayer.seekTo(previousWindowIndex, C.TIME_UNSET);
} else {
mInternalPlayer.seekTo(0);
}
}
/**
* 下一集
*/
public void next() {
if (mInternalPlayer == null) {
return;
}
Timeline timeline = mInternalPlayer.getCurrentTimeline();
if (timeline.isEmpty()) {
return;
}
int windowIndex = mInternalPlayer.getCurrentWindowIndex();
int nextWindowIndex = mInternalPlayer.getNextWindowIndex();
if (nextWindowIndex != C.INDEX_UNSET) {
mInternalPlayer.seekTo(nextWindowIndex, C.TIME_UNSET);
} else if (timeline.getWindow(windowIndex, window, false).isDynamic) {
mInternalPlayer.seekTo(windowIndex, C.TIME_UNSET);
}
}
}
......@@ -103,4 +103,25 @@ public class GSYExoPlayerManager implements IPlayerManager {
dummySurface = null;
}
}
/**
* 上一集
*/
public void previous() {
if (mediaPlayer == null) {
return;
}
mediaPlayer.previous();
}
/**
* 下一集
*/
public void next() {
if (mediaPlayer == null) {
return;
}
mediaPlayer.next();
}
}
......@@ -85,6 +85,27 @@ public class GSYExoVideoManager extends GSYVideoBaseManager {
}
}
/**
* 上一集
*/
public void previous() {
if (playerManager == null) {
return;
}
((GSYExoPlayerManager)playerManager).previous();
}
/**
* 下一集
*/
public void next() {
if (playerManager == null) {
return;
}
((GSYExoPlayerManager)playerManager).next();
}
/**
* 退出全屏,主要用于返回键
*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册