pull/171/head
FongMi 2 years ago
parent 2fdd61c20d
commit 4e2466efdb
  1. 26
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java
  2. 6
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java

@ -50,7 +50,7 @@ import org.greenrobot.eventbus.ThreadMode;
import tv.danmaku.ijk.media.player.ui.IjkVideoView; import tv.danmaku.ijk.media.player.ui.IjkVideoView;
public class CastActivity extends BaseActivity implements CustomKeyDownCast.Listener, TrackDialog.Listener, RenderControl, ServiceConnection { public class CastActivity extends BaseActivity implements CustomKeyDownCast.Listener, TrackDialog.Listener, RenderControl, ServiceConnection, Clock.Callback {
private ActivityCastBinding mBinding; private ActivityCastBinding mBinding;
private DLNARendererService mService; private DLNARendererService mService;
@ -62,6 +62,8 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List
private Runnable mR1; private Runnable mR1;
private Runnable mR2; private Runnable mR2;
private Clock mClock; private Clock mClock;
private long position;
private long duration;
private int scale; private int scale;
private PlayerView getExo() { private PlayerView getExo() {
@ -128,6 +130,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List
private void checkAction() { private void checkAction() {
mAction = getIntent().getParcelableExtra(RendererInterfaceKt.keyExtraCastAction); mAction = getIntent().getParcelableExtra(RendererInterfaceKt.keyExtraCastAction);
mBinding.widget.title.setText(getName()); mBinding.widget.title.setText(getName());
position = duration = 0;
start(); start();
} }
@ -311,6 +314,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List
switch (event.getState()) { switch (event.getState()) {
case 0: case 0:
setTrackVisible(false); setTrackVisible(false);
mClock.setCallback(this);
setState(RenderState.PREPARING); setState(RenderState.PREPARING);
break; break;
case Player.STATE_IDLE: case Player.STATE_IDLE:
@ -361,7 +365,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List
onStopped(); onStopped();
} }
private void onPause(boolean visible) { private void onPaused(boolean visible) {
mBinding.widget.exoDuration.setText(mPlayers.getDurationTime()); mBinding.widget.exoDuration.setText(mPlayers.getDurationTime());
mBinding.widget.exoPosition.setText(mPlayers.getPositionTime(0)); mBinding.widget.exoPosition.setText(mPlayers.getPositionTime(0));
setState(RenderState.PAUSED); setState(RenderState.PAUSED);
@ -395,6 +399,12 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List
public void onTrackClick(Track item) { public void onTrackClick(Track item) {
} }
@Override
public void onTimeChanged() {
position = mPlayers.getPosition();
duration = mPlayers.getDuration();
}
@Override @Override
public void onServiceConnected(ComponentName name, IBinder service) { public void onServiceConnected(ComponentName name, IBinder service) {
(mService = ((RendererServiceBinder) service).getService()).bindRealPlayer(this); (mService = ((RendererServiceBinder) service).getService()).bindRealPlayer(this);
@ -406,28 +416,32 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List
@Override @Override
public long getCurrentPosition() { public long getCurrentPosition() {
return 0; return position;
} }
@Override @Override
public long getDuration() { public long getDuration() {
return 0; return duration;
} }
@Override @Override
public void seek(long time) { public void seek(long time) {
App.post(() -> mPlayers.seekTo(time, true));
} }
@Override @Override
public void pause() { public void pause() {
App.post(() -> onPaused(true));
} }
@Override @Override
public void play(@Nullable Double speed) { public void play(@Nullable Double speed) {
App.post(this::onPlay);
} }
@Override @Override
public void stop() { public void stop() {
App.post(this::onStopped);
} }
@Override @Override
@ -482,7 +496,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List
@Override @Override
public void onKeyCenter() { public void onKeyCenter() {
if (mPlayers.isPlaying()) onPause(true); if (mPlayers.isPlaying()) onPaused(true);
else onPlay(); else onPlay();
hideControl(); hideControl();
} }
@ -507,7 +521,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List
@Override @Override
protected void onPause() { protected void onPause() {
super.onPause(); super.onPause();
onPause(false); onPaused(false);
mClock.stop(); mClock.stop();
} }

@ -1322,7 +1322,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
getDetail(item); getDetail(item);
} }
private void onPause(boolean visible) { private void onPaused(boolean visible) {
mBinding.widget.exoDuration.setText(mPlayers.getDurationTime()); mBinding.widget.exoDuration.setText(mPlayers.getDurationTime());
mBinding.widget.exoPosition.setText(mPlayers.getPositionTime(0)); mBinding.widget.exoPosition.setText(mPlayers.getPositionTime(0));
if (visible) showInfo(); if (visible) showInfo();
@ -1482,7 +1482,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
@Override @Override
public void onKeyCenter() { public void onKeyCenter() {
if (mPlayers.isPlaying()) onPause(true); if (mPlayers.isPlaying()) onPaused(true);
else onPlay(); else onPlay();
hideControl(); hideControl();
} }
@ -1522,7 +1522,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
@Override @Override
protected void onPause() { protected void onPause() {
super.onPause(); super.onPause();
onPause(false); onPaused(false);
mClock.stop(); mClock.stop();
} }

Loading…
Cancel
Save