diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
index 2b7199c2f..d2d5c843d 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
@@ -368,11 +368,10 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
}
private void exitFullscreen() {
- mBinding.widget.info.setVisibility(View.GONE);
- mBinding.widget.center.setVisibility(View.GONE);
mBinding.video.setForeground(ResUtil.getDrawable(R.drawable.selector_video));
mBinding.video.setLayoutParams(mFrameParams);
mFullscreen = false;
+ hideInfo();
}
private void onDesc() {
@@ -503,6 +502,17 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
mBinding.widget.error.setVisibility(View.GONE);
}
+ private void showInfo() {
+ mBinding.widget.size.setText(mPlayers.getSizeText());
+ mBinding.widget.center.setVisibility(View.VISIBLE);
+ mBinding.widget.info.setVisibility(View.VISIBLE);
+ }
+
+ private void hideInfo() {
+ mBinding.widget.center.setVisibility(View.GONE);
+ mBinding.widget.info.setVisibility(View.GONE);
+ }
+
private void showControl() {
mBinding.control.getRoot().setVisibility(View.VISIBLE);
}
@@ -587,7 +597,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
public void run() {
mBinding.widget.action.setImageResource(R.drawable.ic_play);
mBinding.widget.center.setVisibility(View.GONE);
- mBinding.widget.info.setVisibility(View.GONE);
+ hideInfo();
}
};
@@ -652,8 +662,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
private void onPause(boolean visible) {
mBinding.widget.exoDuration.setText(mPlayers.getDurationTime());
mBinding.widget.exoPosition.setText(mPlayers.getPositionTime(0));
- mBinding.widget.info.setVisibility(visible ? View.VISIBLE : View.GONE);
- mBinding.widget.center.setVisibility(visible ? View.VISIBLE : View.GONE);
+ if (visible) showInfo(); else hideInfo();
mPlayers.pause();
}
@@ -664,7 +673,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
- if (mFullscreen && mBinding.control.tracks.getVisibility() == View.VISIBLE && Utils.isMenuKey(event)) onTracks();
+ if (mFullscreen && mBinding.control.tracks.getVisibility() == View.VISIBLE && Utils.isMenuKey(event)) onToggle();
else if (mFullscreen && isGone(mBinding.control.getRoot()) && mKeyDown.hasEvent(event)) return mKeyDown.onKeyDown(event);
return super.dispatchKeyEvent(event);
}
diff --git a/app/src/leanback/res/layout/view_widget_vod.xml b/app/src/leanback/res/layout/view_widget_vod.xml
index f022f378a..770e8218a 100644
--- a/app/src/leanback/res/layout/view_widget_vod.xml
+++ b/app/src/leanback/res/layout/view_widget_vod.xml
@@ -4,22 +4,19 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
-
+ android:layout_height="wrap_content">
+
+
-
+
= 2 ? 1f : 0.25f;
speed = speed == 5 ? 0.25f : speed + addon;
exoPlayer.setPlaybackSpeed(speed);
@@ -107,6 +137,7 @@ public class Players implements Player.Listener, IMediaPlayer.OnInfoListener, IM
}
public String toggleSpeed() {
+ float speed = getSpeed();
speed = speed == 1 ? 3f : 1f;
exoPlayer.setPlaybackSpeed(speed);
ijkPlayer.setSpeed(speed);
@@ -126,22 +157,6 @@ public class Players implements Player.Listener, IMediaPlayer.OnInfoListener, IM
return stringToTime(time);
}
- public String stringToTime(long time) {
- return Util.getStringForTime(builder, formatter, time);
- }
-
- public long getPosition() {
- return isExo() ? exoPlayer.getCurrentPosition() : ijkPlayer.getCurrentPosition();
- }
-
- public long getDuration() {
- return isExo() ? exoPlayer.getDuration() : ijkPlayer.getDuration();
- }
-
- public long getBuffered() {
- return isExo() ? exoPlayer.getBufferedPosition() : ijkPlayer.getBufferedPosition();
- }
-
public void seekTo(int time) {
if (time == 0) return;
if (isExo()) exoPlayer.seekTo(getPosition() + time);
@@ -154,10 +169,6 @@ public class Players implements Player.Listener, IMediaPlayer.OnInfoListener, IM
else if (isIjk()) ijkPlayer.seekTo(time);
}
- public boolean isPlaying() {
- return isExo() ? exoPlayer.isPlaying() : ijkPlayer.isPlaying();
- }
-
public boolean isVod() {
return getDuration() > 5 * 60 * 1000;
}
diff --git a/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/ui/IjkVideoView.java b/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/ui/IjkVideoView.java
index 6ebf6e9c5..72c0c59dc 100644
--- a/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/ui/IjkVideoView.java
+++ b/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/ui/IjkVideoView.java
@@ -8,6 +8,7 @@ import android.net.Uri;
import android.os.Build;
import android.util.AttributeSet;
import android.util.Log;
+import android.util.Size;
import android.view.Gravity;
import android.view.View;
import android.widget.FrameLayout;
@@ -46,6 +47,7 @@ public class IjkVideoView extends FrameLayout implements MediaController.MediaPl
public static final int RENDER_SURFACE_VIEW = 0;
public static final int RENDER_TEXTURE_VIEW = 1;
+ private float mCurrentSpeed = 1;
private int mCurrentAspectRatio;
private int mCurrentRender;
@@ -185,6 +187,7 @@ public class IjkVideoView extends FrameLayout implements MediaController.MediaPl
try {
createPlayer();
fixUserAgent();
+ setSpeed(mCurrentSpeed);
setRender(mCurrentRender);
mCurrentBufferPosition = 0;
mCurrentBufferPercentage = 0;
@@ -428,7 +431,17 @@ public class IjkVideoView extends FrameLayout implements MediaController.MediaPl
}
public void setSpeed(float speed) {
- mIjkPlayer.setSpeed(speed);
+ if (mIjkPlayer != null) mIjkPlayer.setSpeed(speed);
+ mCurrentSpeed = speed;
+ }
+
+ public float getSpeed() {
+ if (mIjkPlayer != null) return mIjkPlayer.getSpeed();
+ return mCurrentSpeed;
+ }
+
+ public Size getSize() {
+ return new Size(mVideoWidth, mVideoHeight);
}
@Override